单链表知识点汇总

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;

 

以上是关于单链表知识点汇总的主要内容,如果未能解决你的问题,请参考以下文章

单链表的知识点

数据结构之单链表

数据结构学习笔记——链表的相关知识(单链表带头结点和不带头结点的基本操作)

算法专区博文汇总

线性表练习之Example003-删除单链表最小值节点

线性表练习之Example012-逆序打印单链表