2-4-单链表链式存储结构-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版
2016-02-28 00:22
330 查看
课本源码部分
第2章 线性表 - 单链表链式存储
——《数据结构》-严蔚敏.吴伟民版
[b]★有疑问先阅读★[/b]
源码使用说明 链接☛☛☛ 《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明
课本源码合辑 链接☛☛☛ 《数据结构》课本源码合辑
习题集全解析 链接☛☛☛ 《数据结构题集》习题解析合辑
本源码引入的文件 链接☛ [b]Status.h、Scanf.c
[/b]
相关测试数据下载 链接☛ 数据包
文档中源码及测试数据存放目录:数据结构\▲课本算法实现\▲02 线性表\04 SinglyLinkedList
值得注意的是,这儿所示的链表都是有头结点的单链表。有头结点意味着头结点指针指向的结点数据域为空,头结点的存在仅仅是作为标记单链表的开始,有头结点的单链表在操作时更加方便,不用专门为头结点的增删情况写额外代码,这一点可以在实际应用中加以体会。
单链表链式结构如下图:
更多章节持续更新中...
第2章 线性表 - 单链表链式存储
——《数据结构》-严蔚敏.吴伟民版
[b]★有疑问先阅读★[/b]
源码使用说明 链接☛☛☛ 《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明
课本源码合辑 链接☛☛☛ 《数据结构》课本源码合辑
习题集全解析 链接☛☛☛ 《数据结构题集》习题解析合辑
本源码引入的文件 链接☛ [b]Status.h、Scanf.c
[/b]
相关测试数据下载 链接☛ 数据包
文档中源码及测试数据存放目录:数据结构\▲课本算法实现\▲02 线性表\04 SinglyLinkedList
概述
比起之前顺序存储的单链表,链式存储有很多优点,比如删除与插入更方便,不用来回移动大量元素。但与此对应的是存取指定位置元素时将变得费劲,因为顺序存储结构中,通过数组下标就可以获取第i个元素,但是在链式存储中,必须由头指针或尾指针(如果有的话)开始遍历整个链表直至寻找到需要的元素。在元素的查找效率方面,此两种存储结构无明显差异。解析
单链表链式存储结构引入了链表的概念,链表由一个个小的结点组成,每个结点都包含一个数据域和指针域,指针域指向的是紧邻的下一个结点,最后一个结点指针通常为NULL。如果将最后一个结点的指针指向开头,那么这个链表就成了循环单链表。值得注意的是,这儿所示的链表都是有头结点的单链表。有头结点意味着头结点指针指向的结点数据域为空,头结点的存在仅仅是作为标记单链表的开始,有头结点的单链表在操作时更加方便,不用专门为头结点的增删情况写额外代码,这一点可以在实际应用中加以体会。
单链表链式结构如下图:
可能涉及到的语法难点
单链表链式存储也用到了动态分配内存。值得注意的是,由于头结点的指针本身就是个结构指针,所以在初始化、创建、销毁等需要改变头结点指针的地方,则要注意函数形参为二级指针,即指向头指针的指针。新手很容易犯的错误是该用二级指针的地方使用了一级指针,这样做的后果就是明明函数内分配了所需内存,但是外面却访问不到,也可能明明函数内销毁掉的内存,外面还可以访问到。这样不仅会引起内存访问差错,甚至会引起程序崩溃,所以,这一点很值得引起重视。源码
文件一 ☛ SinglyLinkedList.h
文件二 ☛ SinglyLinkedList.c
文件三 ☛ SinglyLinkedList-main.c (测试文档)
文件四 ☛ TestData_HL.txt (头插法数据文档)
文件五 ☛ TestData_TL.txt (尾插法数据文档)
测试结果展示
更多章节持续更新中...
相关文章推荐
- 2-3-归并单链表(顺序表)-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版
- 2-2-求并集A=A∪B-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版
- 2-1-单链表顺序存储结构-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版
- 《数据结构》带头结点单链表的合并
- 数据结构之串
- 《数据结构进行曲》 带头结点单循环链表的合并
- 数据结构与算法基础(二)之单链表的插入与删除操作
- 数据结构大二课程设计:QT实现线段树
- 数据结构算法之排序系列Java、C源码实现(9)--总结
- 数据结构算法之排序系列Java、C源码实现(8)--基数排序
- 数据结构算法之排序系列Java、C源码实现(7)--归并排序
- 数据结构算法之排序系列Java、C源码实现(6)--快速排序
- 数据结构算法之排序系列Java、C源码实现(5)--冒泡排序
- 数据结构之单链表——带头节点和不带头节点(C/C++)
- 数据结构算法之排序系列Java、C源码实现(4)--堆排序
- 数据结构算法之排序系列Java、C源码实现(3)--直接选择排序
- 数据结构算法之排序系列Java、C源码实现(2)--希尔排序
- 数据结构之线性表(定长线性表和不定长线性表)
- 数据结构之单链表——带有节点的单链表的创建、插入和删除(C/C++)
- 数据结构--1、线性表