Chapter 1 线性表
Preface:
这部分主要是我考研之前的总结,留作以后用到时再翻出来看看。都是基础的知识点,望各(Da)位(Lao)不喜勿喷,欢迎指正。
适用人群:考研复习过一遍数据结构的,可以看看,查漏补缺(顺便帮我指出问题,肯定会有不少问题)或者对数据结构的基本知识想有一个系统性的梳理。
多说一句,这些,远远不够...
Chapter 1 线性表
1- 两种存储结构的比较
答:
顺序表:随机访问特性,占用连续存储空间,静态分配,存储密度大。(查找)
链表:不支持随机访问,结点的存储空间利用率较顺序表低,动态分配。(插入,删除)
//在删除链表中某结点时,需要找到它的前驱结点。
//先将要插入结点两端的两边链接好,这样就可以保证不会发生断链后找不到结点的情况。
2- 线性表的链式存储结构
注:
1- 顺序表:定义、插入O(n)、删除O(n)、按值查找(顺序查找)O(n)。
2- 单链表:定义、建立单链表(头、尾)O(n)、按序号查找结点值O(n)、按值查找表结点O(n)、插入O(n)、删除O(n)、求表长O(n)。
3- 单链表中引入头结点的目的是为了操作简单。
4- 双链表:定义、插入、删除。
5- 循环单链表(不设头指针而只设尾指针效率更高)
带有表尾指针的对表尾插入、表头插入删除为O(1)。
对表尾删除O(n),需要找到前驱结点。
6- 循环双链表:对带头节点的循环双链表四种操作均为O(1)。
7- 静态链表(数组)。
8- 查找:无序,顺序和链表均为O(n),有序:顺序表可用折半查找O(log2n)。