S1线性表的链式存储结构特点:
1)用任意一组地址任意的存储单元存放线性表中的数据元素。
2)节点: 数据域 (数据元素的信息)+ 指针域 (指示直接后继存储位置)= 节点 (表示数据元素或数据元素的映像)
3)链表:以“节点的序列”表示线性表称作链表。
S2头节点以及头指针
1)有时为了操作方便,在第一个节点之前虚加以个“头节点”, 以指向头节点的指针 为链表的头指针。
S3线性表的顺序存储结构与链式存储结构优缺点:
1)在分配空间上:数组分配在一块连续的数据空间上,因此在分配空间时必须确定大小;链表是一块
不连续的动态空间,通过指针来连接,因此长度可变。
2)顺序存储与链式存储优缺点:
数组优点:
1.可以利用偏移地址来访问元素,效率高,为O(1)。
2.可以使用折半方法查找元素,效率高。
数组缺点:
1.空间连续,存储效率低。
2.插入和删除元素效率比较低,而且比较麻烦。
链表优点:
1.插入和删除元素不需要移动其余元素,效率高,为O(1)。
2.不要求连续空间,空间利用率高。
链表缺点:
1.不提高随机访问元素的机制。
2.查找元素和搜索元素的效率低,最快情况为O(1),平均情况为O(N)。
总结: 因此对于经常插入和删除的操作,数据结构采用链表或者使用二叉搜索树。
S4线性表链表元素的插入与删除
注意: 删除一个节点的时候,要把被删除掉节点的内存进行释放,以免造成内存泄漏。
C语言释放内存函数是:free()
S5单链表部分代码
1)用任意一组地址任意的存储单元存放线性表中的数据元素。
2)节点: 数据域 (数据元素的信息)+ 指针域 (指示直接后继存储位置)= 节点 (表示数据元素或数据元素的映像)
3)链表:以“节点的序列”表示线性表称作链表。
S2头节点以及头指针
1)有时为了操作方便,在第一个节点之前虚加以个“头节点”, 以指向头节点的指针 为链表的头指针。
S3线性表的顺序存储结构与链式存储结构优缺点:
1)在分配空间上:数组分配在一块连续的数据空间上,因此在分配空间时必须确定大小;链表是一块
不连续的动态空间,通过指针来连接,因此长度可变。
2)顺序存储与链式存储优缺点:
数组优点:
1.可以利用偏移地址来访问元素,效率高,为O(1)。
2.可以使用折半方法查找元素,效率高。
数组缺点:
1.空间连续,存储效率低。
2.插入和删除元素效率比较低,而且比较麻烦。
链表优点:
1.插入和删除元素不需要移动其余元素,效率高,为O(1)。
2.不要求连续空间,空间利用率高。
链表缺点:
1.不提高随机访问元素的机制。
2.查找元素和搜索元素的效率低,最快情况为O(1),平均情况为O(N)。
总结: 因此对于经常插入和删除的操作,数据结构采用链表或者使用二叉搜索树。
S4线性表链表元素的插入与删除
注意: 删除一个节点的时候,要把被删除掉节点的内存进行释放,以免造成内存泄漏。
C语言释放内存函数是:free()
S5单链表部分代码