7个回答
展开全部
1.基于存储的考虑
顺序表的存储空间是静态分配的,在程序执行之前必须明确规定它的存储规模,也就是说事先对“maxsize”要有合适的设定,过大造成浪费,过小造成溢出。如果对线性表的长度或存储规模难以估计时,不宜采用顺序表;链表不用事先估计存储规模,但链表的存储密度较低(存储密度是指一个结点中数据元素所占的存储单元和整个结点所占的存储单元之比)。
2.基于操作的考虑
在顺序表中按序号访问元素的时间性能为o(1),而链表中按序号访问的时间性能是o(n),所以如果经常做的运算是按序号访问数据元素,显然顺序表优于链表;而在顺序表中做插入、删除时需移动元素,当数据元素的信息量较多且表较长时,这一点是不应忽视的;在链表中作插入、删除,虽然也要找插入位置,但主要是比较操作,从这个角度考虑显然链表较优。
3.基于开发的语言考虑
顺序表容易实现,任何高级语言中都有数组类型,链表的操作是基于指针的,有些语言不支持指针类型,并且相对指针来讲顺序表较简单。
总之,两种存储结构各有长短,选择那一种存储方式应由实际问题决定。通常“较稳定”的线性表选择顺序存储,而频繁做插入删除的即动态性较强的线性表宜选择链式存储。
#数据结构
顺序表的存储空间是静态分配的,在程序执行之前必须明确规定它的存储规模,也就是说事先对“maxsize”要有合适的设定,过大造成浪费,过小造成溢出。如果对线性表的长度或存储规模难以估计时,不宜采用顺序表;链表不用事先估计存储规模,但链表的存储密度较低(存储密度是指一个结点中数据元素所占的存储单元和整个结点所占的存储单元之比)。
2.基于操作的考虑
在顺序表中按序号访问元素的时间性能为o(1),而链表中按序号访问的时间性能是o(n),所以如果经常做的运算是按序号访问数据元素,显然顺序表优于链表;而在顺序表中做插入、删除时需移动元素,当数据元素的信息量较多且表较长时,这一点是不应忽视的;在链表中作插入、删除,虽然也要找插入位置,但主要是比较操作,从这个角度考虑显然链表较优。
3.基于开发的语言考虑
顺序表容易实现,任何高级语言中都有数组类型,链表的操作是基于指针的,有些语言不支持指针类型,并且相对指针来讲顺序表较简单。
总之,两种存储结构各有长短,选择那一种存储方式应由实际问题决定。通常“较稳定”的线性表选择顺序存储,而频繁做插入删除的即动态性较强的线性表宜选择链式存储。
#数据结构
展开全部
顺序表存储位置是连续的、支持随机访问,链表可以是不连续的、不能随机访问,只能从头到尾逐个搜索。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单链表就是一个节点链一个节点的那种
而
顺序表,通常采用动态数组的形式。
区别就是内存上的区别。
连续与不连续。
操作上的区别,单链表在增删上面有优势,比顺序表效率高。
顺序表增删还需要移动
顺序表的优势,可以通过下标直接索引到该元素,查询快
而
顺序表,通常采用动态数组的形式。
区别就是内存上的区别。
连续与不连续。
操作上的区别,单链表在增删上面有优势,比顺序表效率高。
顺序表增删还需要移动
顺序表的优势,可以通过下标直接索引到该元素,查询快
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
顺序表存储位置是连续的,一般顺序表的长度有限,而链表是通过指针来定位下一个元素的位置,所以没有长度的限制,随时可以增加。不过链表操作起来不如顺序表方便,顺序表可以通过计算地址来定位需要的元素,链表只能从头到尾来找需要的元素。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两个区别:
1.物理结构上:顺序表在内存中是依顺序存放的,中间没有间隙;链表的元素存放的位置就是随机的,乱序的.
2.逻辑结构上:顺序表可以根据下标来随机访问,如a[3]就能访问到第三个元素,而链表不管是单链表还是双链表,都必须先访问到第一个元素得到第二个元素的指针,再通过第二个元素得到第三个元素的指针,它是顺序访问的.
1.物理结构上:顺序表在内存中是依顺序存放的,中间没有间隙;链表的元素存放的位置就是随机的,乱序的.
2.逻辑结构上:顺序表可以根据下标来随机访问,如a[3]就能访问到第三个元素,而链表不管是单链表还是双链表,都必须先访问到第一个元素得到第二个元素的指针,再通过第二个元素得到第三个元素的指针,它是顺序访问的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询