一、顺序表
线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。
线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线性表(存储层次上属于链式存储,但是把最后一个数据元素的尾指针指向了首位结点)。
对于⾮非空的线性表和线性结构,其特点如下:
1、存在唯⼀一的⼀一个被称作”第⼀一个”的数据元素;存在唯⼀一的⼀一个被称作”最后⼀一个"的数据元素
2、除了了第⼀一个之外,结构中的每个数据元素均有⼀一个前驱
3、除了了最后⼀一个之外,结构中的每个数据元素都有⼀一个后继
顺序表的存储结构
线性表的顺序表示指的是一组地址连续的存储单元依次存储线性表的数据元素,这种表示也称为线性表的顺序存储结构或顺序映像. 通常,称这种存储结构的线性表为顺序表(Sequential List). 其特点是, 逻辑上相邻的数据元素,其物理次序也是相邻的.
![](https://img.haomeiwen.com/i16931375/312b32c1c17880eb.png)
算法实现:
顺序表的初始化
![](https://img.haomeiwen.com/i16931375/0f5bc5cc3d21907a.png)
插入
![](https://img.haomeiwen.com/i16931375/2b1eca729a5b1c11.png)
删除
![](https://img.haomeiwen.com/i16931375/44fa5b1a36527522.png)
查找
![](https://img.haomeiwen.com/i16931375/ac087efc3f97e108.png)
输出结果:
![](https://img.haomeiwen.com/i16931375/137147343b142b24.png)
二、单链表的头插法和尾插法
头插法
从一个空表开始,读取字符数组a中的字符,生成新节点,将读取的数据存放到新节点的数据域中,然后将新节点插入到当前链表的表头上,直到读完字符数组a的所有元素为止。
![](https://img.haomeiwen.com/i16931375/33c3100ce4b3da23.png)
尾插法
尾插法建表,该算法是将新节点插到当前链表的表尾上,为此必须增加一个尾指针r,使其始终指向当前链表的尾节点
![](https://img.haomeiwen.com/i16931375/953d805ede882fa4.png)
输出结果
![](https://img.haomeiwen.com/i16931375/39584e90e8f657cf.png)
网友评论