知识点总结:
链表的表示:链表用含指针的结构体实现
链表分类:
单链表:每一个结点都要保存一个指向下一个元素的指针。
双链表:每个结点既要保存下一个结点的地址,还要保存上一个结点的地址。
循环链表:最后一个结点中保存指向第一个结点的地址。
链表和数组的比较
链表:
1.内存地址上可以是不连续的,内部数据不具备随机访问性;
2.查找和删除 更改相应结点内的节点信息即可(不需要更改节点的内存地址);
3.链表可以方便地扩展内存空间
即:链表动态地进行存储分配,可以适应数据动态地增减的情况。
数组:
1.在内存上给出了连续的空间,内部数据可随机访问;
2.查找和删除 参考提高篇中实现线性表基本操作的函数;
3.数组建立后所占用的空间大小就是固定的.如果满了就没法扩展
即:数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减。
数组与链表的优缺点:
数组:
优点:使用方便 ,查询效率 比链表高,内存为一连续的区域
缺点:大小固定,不适合动态存储,不方便动态添加
链表:
优点:可动态添加删除 大小可变
缺点:只能通过顺次指针访问,查询效率低
链表和数组的本质差异:
1.在访问方式上
数组可以随机访问其中的元素
链表则必须是顺序访问,不能随机访问
2.空间的使用上
链表可以随意扩大
数组则不能