数据结构学习笔记——顺序表和链表的比较
来源:互联网 发布:黑暗之魂3捏御姐数据 编辑:程序博客网 时间:2024/06/05 09:15
顺序表和链表各有优缺点
顺序表的优点
- 方法简单,各种高级语言中都有数组,容易实现。
- 不用为表示结点间的逻辑关系而增加额外的存储开销(链表要增加额外的指针域)。
- 顺序表具有按元素序号随机访问的特点。
缺点
- 在顺序表中做插入删除操作时,平均移动大约表中一般的元素,因此对n较大的顺序表效率低。
- 需要预先分配足够大的存储空间,估计过大,可能会导致顺序表后部大量闲置;预先分配过小,又会造成溢出。
链表的优缺点恰好和顺序表相反。
链表和顺序表的插入、删除操作时间复杂度O(n)是两个不同的概念,链表O(n)主要是花费在查找上,顺序表O(n)主要花费在移动元素上,两者没有可比性。
在实际中应怎样选择存储结构?
1. 基于存储的考虑
顺序表在程序执行之前必须明确规定它的存储规模,也就是说事先对“MAXSIZE”要有合适的设定,过大造成浪费,过小造成溢出。可见对线性表的长度或存储规模难以估计时,不宜采用顺序表;
链表不用事先估计存储规模但链表的存储密度较低,顺序存储结构存储密度是1,链式存储结构的存储密度是小于1的。
2. 基于运算的考虑
在顺序表中按序号访问
3. 基于环境的考虑
顺序表容易实现,任何高级语言中都有数组类型,链表的操作是基于指针的,相对来讲前者简单些。
总之,顺序表和链表没有绝对的优劣之分,两种存储结构各有长短,关键看你看重什么,也就是要依据实际问题中的主要因素而定。通常“较稳定”的线性表选择顺序存储,而频繁做插入删除操作的,即动态性较强的线性表适合用链式存储。
0 0
- 数据结构学习笔记——顺序表和链表的比较
- 数据结构学习:单链表,顺序表和链表的比较
- 数据结构——顺序表和链表的比较
- 数据结构--顺序表和单链表的比较
- 数据结构学习笔记3——顺序表的实现
- 【数据结构】顺序表和链表的比较
- 数据结构学习笔记:顺序表
- 数据结构学习笔记1——顺序表
- 【数据结构】顺序表、单链表的 比较+总结
- 数据结构之线性结构(顺序表和链表的比较)【五】
- 严蔚敏版数据结构学习笔记(1):线性表的顺序表示和实现
- 小楼一阁的数据结构学习笔记(二、顺序表)
- 数据结构学习笔记(顺序表的基本操作)
- 数据结构学习笔记二 顺序表
- 数据结构之顺序表学习笔记
- 【黑马程序员-学习笔记】数据结构-顺序表
- 数据结构学习笔记(一) 顺序表
- 数据结构学习笔记之顺序表
- Hdu 1894 String Compare
- 到底应不应该上培训班
- hdu 2066 一个人的旅行(加超级源点)
- Android View重绘和更新: invalidate和requestLayout
- java继承中除了public和protected成员方法外其余的属性是拥有非继承
- 数据结构学习笔记——顺序表和链表的比较
- Spark Streaming:TCP(基本类型)数据源
- Python多进程编程
- 概率算法
- 功能测试机设计--测试模块--硬件部分
- 算法基础训练(二)
- AndroidUI-ViewPager简单demo模仿App翻页效果
- Floodligh Web UI显示的host比实际多且不会被清除的原因及解决方法
- swift入门———数组