电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

顺序表和链表的比较


发布日期:2022/12/24
 

顺序表和链表的比较

顺序表和链表各有短长在实际应用中究竟选用哪一种存储结构呢?这要根据具体问题的要求和性质来决定通常有以下几方面的考虑

┌───┬───────────────┬───────────────┐

│ │ 顺序表 │ 链表 │

├─┬─┼───────────────┼───────────────┤

│基│分│静态分配程序执行之前必须明确│动态分配只要内存空间尚有空闲

│于│配│规定存储规模若线性表长度n变 │就不会产生溢出因此当线性表│

│空│方│化较大则存储规模难于预先确定│的长度变化较大难以估计其存储│

│间│式│估计过大将造成空间浪费估计太│规模时以采用动态链表作为存储│

│考│ │小又将使空间溢出机会增多 │结构为好

│虑├─┼───────────────┼───────────────┤

│ │存│为当线性表的长度变化不大 │<

│ │储│易于事先确定其大小时为了节约│ │

│ │密│存储空间宜采用顺序表作为存储│ │

│ │度│结构 │ │

├─┼─┼───────────────┼───────────────┤

│基│存│随机存取结构对表中任一结点都│顺序存取结构链表中的结点需│

│于│取│可在O()时间内直接取得 │从头指针起顺着链扫描才能取得

│时│方│线性表的操作主要是进行查找很│ │

│间│法│少做插入和删除操作时采用顺序│ │

│考│ │表做存储结构为宜 │ │

│虑├─┼───────────────┼───────────────┤

│ │插│在顺序表中进行插入和删除平均│在链表中的任何位置上进行插入和│

│ │入│要移动表中近一半的结点尤其是│删除都只需要修改指针对于频│

│ │删│当每个结点的信息量较大时移动│繁进行插入和删除的线性表宜采│

│ │除│结点的时间开销就相当可观 │用链表做存储结构若表的插入和│

│ │操│ │删除主要发生在表的首尾两端则│

│ │作│ │采用尾指针表示的单循环链表为宜│

└─┴─┴───────────────┴───────────────┘

存储密度(Storage Density)是指结点数据本身所占的存储量和整个结点结构所占的存储量之比

存储密度=(结点数据本身所占的存储量)/(结点结构所占的存储总量)

上一篇:双链表

下一篇:哈夫曼编码