线性表基础知识整理——数据结构第二章
1.顺序表 的基本性质:
a占用连续的存储空间;
b存储密度大;
c支持随机存取数据元素操作;
d插入和删除操作效率低,时间复杂度O(n);
2.链表的基本性质:
a.不需要占用连续的存储空间;
b.存储密度大;
c.插入和删除操作方便,时间复杂度为(1)
d.能反映数据间的逻辑关系;
3.双链表的特点:
a.相比单链表,双链表可以比较方便的访问到前后相邻的节点;
b.插入和删除操作比单链表复杂,工作量是它的两倍(比如:单链表插入一个节点,只需要改动两个指针;双链表需要改动四个指针)
c.在一个节点之前插入一个节点的操作一共有8种不同的指针插入方法;在一个节点之后插入一个节点的操作一共有8种不同的指针插入方法;具体见下面;
4.静态链表:
用数组描述的链表,即称为静态链表。
在C语言中,静态链表的表现形式即为结构体数组,结构体变量包括数据域data和游标CUR。;这种存储结构,仍需要预先分配一个较大的空间,但在作为线性表的插入和删除操作时不需移动元素,仅需修改指针,故仍具有链式存储结构的主要优点。
5.带头结点的循环双链表:擅长的操作是在最后一个节点之后插入一个节点或者删除最后一个节点;
6.仅有尾节点指针的单循环链表:擅长的操作是在最后一个节点之后插入一个节点或者删除第一个节点;
7.单循环链表L判断链空的条件:L->next=L;
8.双循环链表L判断链空的条件:L->next=L->prior=L;
链表类型:(带头结点|带尾指针)(单|双)(循环|非循环)链表;
9.单链表的生成方式:a.尾插法 b.头插法
尾插法适用于顺序生成序列;
头插法适用于倒叙生成序列;