单链表知识点汇总
Posted minghaohao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单链表知识点汇总相关的知识,希望对你有一定的参考价值。
1、链表是存储空间动态管理的链式存储结构。链表中每个存储结点不仅包含元素本身的信息,即数据域;而且包含表示元素之间逻辑关系的信息。
2、在单链表中增加一个头结点的优点:
(1) 单链表中首结点的插入和删除操作与其它结点一致,无须进行特殊处理。
(2) 无论单链表是否为空都有一个头结点,因此统一了空表和非空表的处理过程。
3、顺序表的存储方式是直接映射,所以具有随机存取的特性,即查找第i个序号元素对应的时间复杂度为O(1),而链表不具有随机存取的特性。
4、存储密度 = 结点中数据元素所占的存储量 / 结点所占的存储量
顺序表的存储密度为1,而链表的存储密度小于1。
5、在单链表中插入、删除一个新结点需要找到插入后的前驱结点。
6、尾插法:需要增加一个尾指针r,使其始终指向当前链表的尾结点,每插入一个新结点后让r指向这个新结点,最后还要将r所指向结点(尾结点)的next域置为空。
7、销毁单链表:
void DestroyList(LinkNode*&L) { LinkNode *pre=L,*p=L→next; //pre指向结点p的前驱结点 while(p!=NULL) //扫描单链表L { free(pre); //释放pre结点 pre=p; p=pre→next; //pre、p同步后移一个结点 } free(pre); //循环结束时p为NULL,pre指向尾结点,释放它 }
初始时pre指向头结点,p指向尾结点。
8、求解单链表的长度时,初始情况下p指向链表的头结点。
9、求解算法问题时,综合考虑多种情形。
在求单链表中第i个元素的值时(GetElem(L,I,&e),遍历完整个链表后,有两种情况:
(1)单链表中没有第i个数据结点,或者参数i错误(i<=0);
(2)找到了第i个值,提取并返回true;
以上是关于单链表知识点汇总的主要内容,如果未能解决你的问题,请参考以下文章