链表和顺序表各基本操作各有什么特点?
1个回答
展开全部
1.基于存储的考虑
顺序表的存储空间是静态分配的,在程序执行之前必须明确规定它的存储规模,也就是说事先对“MAXSIZE”要有合适的设定,过大造成浪费,过小造成溢出。如果对线性表的长度或存储规模难以估计时,不宜采用顺序表;链表不用事先估计存储规模,但链表的存储密度较低(存储密度是指一个结点中数据元素所占的存储单元和整个结点所占的存储单元之比)。
2.基于操作的考虑
在顺序表中按序号访问元素的时间性能为O(1),而链表中按序号访问的时间性能是O(n),所以如果经常做的运算是按序号访问数据元素,显然顺序表优于链表;而在顺序表中做插入、删除时需移动元素,当数据元素的信息量较多且表较长时,这一点是不应忽视的;在链表中作插入、删除,虽然也要找插入位置,但主要是比较操作,从这个角度考虑显然链表较优。
3.基于开发的语言考虑
顺序表容易实现,任何高级语言中都有数组类型,链表的操作是基于指针的,有些语言不支持指针类型,并且相对指针来讲顺序表较简单。
总之,两种存储结构各有长短,选择那一种存储方式应由实际问题决定。通常“较稳定”的线性表选择顺序存储,而频繁做插入删除的即动态性较强的线性表宜选择链式存储。
#数据结构
顺序表的存储空间是静态分配的,在程序执行之前必须明确规定它的存储规模,也就是说事先对“MAXSIZE”要有合适的设定,过大造成浪费,过小造成溢出。如果对线性表的长度或存储规模难以估计时,不宜采用顺序表;链表不用事先估计存储规模,但链表的存储密度较低(存储密度是指一个结点中数据元素所占的存储单元和整个结点所占的存储单元之比)。
2.基于操作的考虑
在顺序表中按序号访问元素的时间性能为O(1),而链表中按序号访问的时间性能是O(n),所以如果经常做的运算是按序号访问数据元素,显然顺序表优于链表;而在顺序表中做插入、删除时需移动元素,当数据元素的信息量较多且表较长时,这一点是不应忽视的;在链表中作插入、删除,虽然也要找插入位置,但主要是比较操作,从这个角度考虑显然链表较优。
3.基于开发的语言考虑
顺序表容易实现,任何高级语言中都有数组类型,链表的操作是基于指针的,有些语言不支持指针类型,并且相对指针来讲顺序表较简单。
总之,两种存储结构各有长短,选择那一种存储方式应由实际问题决定。通常“较稳定”的线性表选择顺序存储,而频繁做插入删除的即动态性较强的线性表宜选择链式存储。
#数据结构
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询