数据结构篇_知识点板块_第二章线性表
数据结构篇为本人考研时所写笔记,包括知识点和编程思想两大板块,笔记内容依据王道数据结构考研书所写,但比书本上知识更加生动形象,愿本篇章能对您有所帮助
二、线性表
-
对于删除和插入后需要移动几个元素实在记不清带值进去数
-
线性表主要特征:
① 个数有限
② 有序
③ 数据元素的类型都相同
-
线性表中元素位序是从1开始,数组从0开始
-
存储密度=(结点数据本身所占存储量)/(整个结点结构所占的存储总量)
-
链表:
① 链式存储设计时,结点内的存储单元地址必须连续
② 设置头指针的作用:方便了单链表的操作
③ 单链表:
(1) 单链表的长度是不包括头结点的
(2) 有n个元素的一维数组,建立一个有序单链表最低时间复杂度是O(nlog_2(n))
④ 双链表:
(1) 对于双链表因为可以方便的找到前驱结点,故插入、删除操作时间复杂度为O(1)
⑤ 循环链表特点:无需增加存储量,仅对表的链接方式修改使表的处理灵活方便
⑥ 不带头结点的单链表head为空的判定条件是:head=NULL
带头结点的单链表head为空的判定条件是:head->next==head
⑦ 循环单链表:
(1) 判空条件:是否等于头结点
(2) 不设头指针仅设尾指针操作效率更高
⑧ 循环双链表:
(1) 判空条件:L头结点的prior域和next域都等于L
⑨ 静态链表:
(1) 静态链表的指针又称游标,指示下一个元素在数组中的下标
(2) 链接地址指的是结点next所指的内存地址
(3) 以next=-1作为其结束标志
(4) next指针的含义表示下一个元素在数组中的位置
(5) 容量不可变