为什么在顺序表中元素必须相继存放而不允许像一堆数组那样按下标存放?
2021-03-09 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
关注
展开全部
您好,非常荣幸能在此回答您的问题。以下是我对此问题的部分见解,若有错误,欢迎指出。1.基于存储的考虑
顺序表的存储空间是静态分配的,在程序执行之前必须明确规定它的存储规模,也就是说事先对“maxsize”要有合适的设定,过大造成浪费,过小造成溢出。如果对线性表的长度或存储规模难以估计时,不宜采用顺序表;链表不用事先估计存储规模,但链表的存储密度较低(存储密度是指一个结点中数据元素所占的存储单元和整个结点所占的存储单元之比)。
2.基于操作的考虑
在顺序表中按序号访问元素的时间性能为o(1),而链表中按序号访问的时间性能是o(n),所以如果经常做的运算是按序号访问数据元素,显然顺序表优于链表;而在顺序表中做插入、删除时需移动元素,当数据元素的信息量较多且表较长时,这一点是不应忽视的;在链表中作插入、删除,虽然也要找插入位置,但主要是比较操作,从这个角度考虑显然链表较优。
3.基于开发的语言考虑
顺序表容易实现,任何高级语言中都有数组类型,链表的操作是基于指针的,有些语言不支持指针类型,并且相对指针来讲顺序表较简单。
总之,两种存储结构各有长短,选择那一种存储方式应由实际问题决定。通常“较稳定”的线性表选择顺序存储,而频繁做插入删除的即动态性较强的线性表宜选择链式存储。
#数据结构非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
顺序表的存储空间是静态分配的,在程序执行之前必须明确规定它的存储规模,也就是说事先对“maxsize”要有合适的设定,过大造成浪费,过小造成溢出。如果对线性表的长度或存储规模难以估计时,不宜采用顺序表;链表不用事先估计存储规模,但链表的存储密度较低(存储密度是指一个结点中数据元素所占的存储单元和整个结点所占的存储单元之比)。
2.基于操作的考虑
在顺序表中按序号访问元素的时间性能为o(1),而链表中按序号访问的时间性能是o(n),所以如果经常做的运算是按序号访问数据元素,显然顺序表优于链表;而在顺序表中做插入、删除时需移动元素,当数据元素的信息量较多且表较长时,这一点是不应忽视的;在链表中作插入、删除,虽然也要找插入位置,但主要是比较操作,从这个角度考虑显然链表较优。
3.基于开发的语言考虑
顺序表容易实现,任何高级语言中都有数组类型,链表的操作是基于指针的,有些语言不支持指针类型,并且相对指针来讲顺序表较简单。
总之,两种存储结构各有长短,选择那一种存储方式应由实际问题决定。通常“较稳定”的线性表选择顺序存储,而频繁做插入删除的即动态性较强的线性表宜选择链式存储。
#数据结构非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询