码迷,mamicode.com
首页 > 其他好文 > 详细

单链表知识点汇总

时间:2018-10-27 14:59:04      阅读:556      评论:0      收藏:0      [点我收藏+]

标签:汇总   同步   个数   存储结构   class   链表   span   删除   插入   

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;

 

单链表知识点汇总

标签:汇总   同步   个数   存储结构   class   链表   span   删除   插入   

原文地址:https://www.cnblogs.com/minghaohao/p/9860773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!