`

线性表顺序存储与链式存储的比较

 
阅读更多
从时间的角度考虑,在按位置查找数据,或在查找元素的前驱和后继等方面,顺序存储有着较大的优势。在插入数据,删除数据时,链式存储就有较大优势,这是由于在链表中只要修改指针即可实现这些操作;而在顺序表中进行插入和删除,平均要移动表中将近一半的数据元素。

从空间的角度考虑,顺序表的存储空间是静态分配的,在程序执行之前必须规定其存储规模。而动态链表的存储空间是动态分配的,只要内存空间有空闲,就不会产生溢出。

顺序表的插入,删除操作:

在顺序表第i个元素前插入结点,需要把i到n的所有元素都向后移动一位,最后把新元素插入到第i个位置。需要注意的是,在进行移动的时候,必须是从n到i依次向后移动,如果从i到n依次向后移动,则最后i+1到n+1个位置的所有元素的值都是一样的,即原来第i个元素的值

删除第i个元素时,需要将i+1到n的所有元素依次向前移动。移动顺序与插入相反,是从前向后进行,即从i到n依次向前移动一个位置。

顺序表中查找元素,获取表长非常容易,但是要插入或删除一个元素却需要移动大量元素;相反链表中却可以方便地插入或者删除元素,但在查找元素时需要进行遍历。因此,当所涉及的问题常常需要进行查找等操作,而插入,删除操作相对较少的时候,适合采用顺序表;当常常需要进行插入,删除操作的时候,适合采用链表
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics