线性表-顺序表和链表的比较
来源:互联网 发布:深圳美达电子软件 编辑:程序博客网 时间:2024/06/05 18:26
顺序表和链表各有短长。在实际应用中究竟选用哪一种存储结构呢?这要根据具体问题的要求和性质来决定。通常有以下几方面的考虑:
┌───┬───────────────┬───────────────┐
│ │ 顺序表 │ 链表 │
├─┬─┼───────────────┼───────────────┤
│基│分│静态分配。程序执行之前必须明确│动态分配只要内存空间尚有空闲,│
│于│配│规定存储规模。若线性表长度n变 │就不会产生溢出。因此,当线性表│
│空│方│化较大,则存储规模难于预先确定│的长度变化较大,难以估计其存储│
│间│式│估计过大将造成空间浪费,估计太│规模时,以采用动态链表作为存储│
│考│ │小又将使空间溢出机会增多。 │结构为好。 │
│虑├─┼───────────────┼───────────────┤
│ │存│为1。当线性表的长度变化不大, │<1 │
│ │储│易于事先确定其大小时,为了节约│ │
│ │密│存储空间,宜采用顺序表作为存储│ │
│ │度│结构。 │ │
├─┼─┼───────────────┼───────────────┤
│基│存│随机存取结构,对表中任一结点都│顺序存取结构,链表中的结点,需│
│于│取│可在O(1)时间内直接取得 │从头指针起顺着链扫描才能取得。 │
│时│方│线性表的操作主要是进行查找,很│ │
│间│法│少做插入和删除操作时,采用顺序│ │
│考│ │表做存储结构为宜。 │ │
│虑├─┼───────────────┼───────────────┤
│ │插│在顺序表中进行插入和删除,平均│在链表中的任何位置上进行插入和│
│ │入│要移动表中近一半的结点,尤其是│删除,都只需要修改指针。对于频│
│ │删│当每个结点的信息量较大时,移动│繁进行插入和删除的线性表,宜采│
│ │除│结点的时间开销就相当可观。 │用链表做存储结构。若表的插入和│
│ │操│ │删除主要发生在表的首尾两端,则 │
│ │作│ │采用尾指针表示的单循环链表为宜 │
└─┴─┴───────────────┴───────────────┘
存储密度(Storage Density)是指结点数据本身所占的存储量和整个结点结构所占的存储量之比,即
┌───┬───────────────┬───────────────┐
│ │ 顺序表 │ 链表 │
├─┬─┼───────────────┼───────────────┤
│基│分│静态分配。程序执行之前必须明确│动态分配只要内存空间尚有空闲,│
│于│配│规定存储规模。若线性表长度n变 │就不会产生溢出。因此,当线性表│
│空│方│化较大,则存储规模难于预先确定│的长度变化较大,难以估计其存储│
│间│式│估计过大将造成空间浪费,估计太│规模时,以采用动态链表作为存储│
│考│ │小又将使空间溢出机会增多。 │结构为好。 │
│虑├─┼───────────────┼───────────────┤
│ │存│为1。当线性表的长度变化不大, │<1 │
│ │储│易于事先确定其大小时,为了节约│ │
│ │密│存储空间,宜采用顺序表作为存储│ │
│ │度│结构。 │ │
├─┼─┼───────────────┼───────────────┤
│基│存│随机存取结构,对表中任一结点都│顺序存取结构,链表中的结点,需│
│于│取│可在O(1)时间内直接取得 │从头指针起顺着链扫描才能取得。 │
│时│方│线性表的操作主要是进行查找,很│ │
│间│法│少做插入和删除操作时,采用顺序│ │
│考│ │表做存储结构为宜。 │ │
│虑├─┼───────────────┼───────────────┤
│ │插│在顺序表中进行插入和删除,平均│在链表中的任何位置上进行插入和│
│ │入│要移动表中近一半的结点,尤其是│删除,都只需要修改指针。对于频│
│ │删│当每个结点的信息量较大时,移动│繁进行插入和删除的线性表,宜采│
│ │除│结点的时间开销就相当可观。 │用链表做存储结构。若表的插入和│
│ │操│ │删除主要发生在表的首尾两端,则 │
│ │作│ │采用尾指针表示的单循环链表为宜 │
└─┴─┴───────────────┴───────────────┘
存储密度(Storage Density)是指结点数据本身所占的存储量和整个结点结构所占的存储量之比,即
存储密度=(结点数据本身所占的存储量)/(结点结构所占的存储总量)
转载自:http://student.zjzk.cn/course_ware/data_structure/web/xianxingbiao/xianxingbiao2.4.1.htm
0 0
- 【线性表】顺序表和链表的比较
- 线性表-顺序表和链表的比较
- 数据结构之线性结构(顺序表和链表的比较)【五】
- 数据结构线性表的两种存储形式顺序表和单链表的比较
- 简要比较线性表的顺序存储结构和链式存储结构
- 顺序存储(数组)和链式存储(指针)的比较以及线性表小解义
- 线性表_顺序存储结构和链式存储结构的优缺点比较(区别)
- 顺序表和链表的比较
- 顺序表和链表的比较
- 顺序表和链表的比较
- 顺序表和链表的比较
- 顺序表和链表的比较
- 顺序表和链表的比较
- 顺序表和链表的比较
- 线性表的顺序表示和实现
- 线性表的顺序表示和实现
- 线性表的顺序表示和实现
- 线性表的顺序表示和实现
- CSS3的新增属性border-image
- Linux中的文件共享代码示例
- REGEXP_SUBSTR函数用法
- 直接拿来用!最火的Android开源项目(二)
- 关于xtream的工具使用
- 线性表-顺序表和链表的比较
- Android service里面启动activity和alertdialog
- 【HDU】1814 Peaceful Commission 2-sat
- 关于CSDN几点用户体验较差的功能(收藏夹和草稿箱)
- 直接拿来用!最火的Android开源项目(完结篇)
- hduoj1262(寻找素数对)
- c++题目
- 如何得到bitmap某一点像素的RGB值
- 模板方法设计模式例子