当前位置:网站首页>线性表(顺序表和链表)
线性表(顺序表和链表)
2022-08-02 18:48:00 【没有人会真的躺平】
2.1线性表的定义和基本操作
线性表的定义
线性表的基本操作
只有c++支持引用,c语言不支持引用。
2.2-1顺序表的定义(静态分配在栈区,动态分配申请的堆区的空间)
顺序表的定义
顺序表的实现——静态分配(使用静态数组)
顺序表的实现——动态分配
2.2-2顺序表的插入删除
顺序表的插入
顺序表的删除
2.2-3顺序表的查找
按位查找
按值查找
2.3-1 单链表的定义
不带头结点的单链表
带头结点的单链表
2.3-2 单链表的插入删除
按照位序插入
带头节点
下图 i 为位序,至少为1
不带头节点
指定结点的后插操作
指定结点的前插操作
第一种办法:循环查找p的前驱 q,再对q后插
第二种方法:在要前插的那个节点后边 插入一个节点,交换这两个节点的数据,相当于实现前插了
按位序删除(带头结点)
指定结点的删除
2.3-3单链表的查找
按位查找
按值查找
按值查找只能从头往后扫描
2.3-4 单链表的建立(尾插法和头插法)
尾插法
初始化单链表
每次从头循环到尾,去添加一个新节点,很费时间
所以可以确定一个指针 r 直接指向最后一个节点。边添加节点,边移动表尾指针 r
头插法
2.3-5 双链表
双链表的初始化
双链表的插入
双链表的删除
双链表的遍历
2.3-6 循环链表
循环单链表
循环双链表
2.3-7 静态链表
定义一个静态链表
下图是定义静态链表的一般方法
下图是王道书上定义静态链表的方法,SLinkList[MaxSize]像java中定义数组SLinkList[ ]
证明了图中结论
简单基本操作的实现
下图和上图一样,只是多一些笔记
2.3-8 顺序表的链表的比较
下图 声明数组啥的 在栈区,系统自动回收;malloc申请堆区内存,需要自己去释放申请的内存空间。
开放式问题
边栏推荐
- 【动态规划专项训练】基础篇
- 线程池原理与实践|从入门到放弃,深度解析
- 什么是现场服务管理系统(FSM)?有什么好处?
- 有哪些好用的实时网络流量监控软件
- What is the use of IT assets management software
- LeetCode每日一题(324. Wiggle Sort II)
- [论文分享] VideoFlow: A Flow-Based Generative Model for Video
- 动态规划常见实例详解
- 为何国内年轻人都抢购iPhone,因为它更实惠也更亲民
- What skills are the most practical for college students in communications?
猜你喜欢
Mysql基础篇(视图)
ETH Zurich重磅综述 | 人脸-素描合成:一个新的挑战
我靠这套笔记自学,拿下字节50万offer....
音频隐写一
Monitor is easy to Mars debut: distributed operations help TOP3000 across management gap
就刚刚,鸿蒙3.0发布了,华为还一口气发布了十一款产品
从技术全景到场景实战,透析「窄带高清」的演进突破
电子行业库存管理痛点与WMS仓储管理系统解决方案
Golang swagger :missing required param comment parameters
通信大学生走向岗位,哪些技能最实用?
随机推荐
[论文分享] VideoFlow: A Flow-Based Generative Model for Video
7.22 - 每日一题 - 408
Win11主题下载一直转圈怎么办?Win11主题下载一直转圈的解决方法
[深入研究4G/5G/6G专题-49]: 5G Link Adaption链路自适应-5-上行链路自适应ULLA-PUSCH信道
【C语言刷题】双指针原地修改数组(力扣原题分析)
中断向量表概述
JVM内存和垃圾回收-06.本地方法栈
有什么好用的IT资产管理软件
JVM内存和垃圾回收-05.虚拟机栈
E. Add Modulo 10(规律)
7.21 - 每日一题 - 408
SQL Alias Aliases
【C语言刷题】牛客网刷题——替换空格
Unity 打包和切换平台|Build Settings窗口介绍
selenium安装和环境配置Firefox
T31开发笔记:metaipc测试
详解卡尔曼滤波原理
博云入选 Gartner 中国 DevOps 代表厂商
【动态规划专项训练】基础篇
openlayers版本更新差别