顺序表和链表有什么区别??

来源:百度知道 编辑:UC知道 时间:2024/06/07 18:06:11
请帮忙!!

顺序表存储位置是相邻连续的,可以随即访问的一种数据结构,一个顺序表在使用前必须指定起长度,一旦分配内存,则在使用中不可以动态的更改。他的优点是访问数据是比较方便,可以随即的访问表中的任何一个数据。
链表是通过指针来描述元素关系的一种数据结构,他可以是物理地址不连续的物理空间。不能随即访问链表元素,必须从表头开始,一步一步搜索元素。它的优点是:对于数组,可以动态的改变数据的长度,分配物理空间。
在使用中:如果一个数组在使用中,查询比较多,而插入,删除数据比较少,数组的长度不变时,选顺序表比较合理。如果插入,删除,长度不定的数组,可以选链表。

两个区别:
1.物理结构上:顺序表在内存中是依顺序存放的,中间没有间隙;链表的元素存放的位置就是随机的,乱序的.
2.逻辑结构上:顺序表可以根据下标来随机访问,如a[3]就能访问到第三个元素,而链表不管是单链表还是双链表,都必须先访问到第一个元素得到第二个元素的指针,再通过第二个元素得到第三个元素的指针,它是顺序访问的.

顺序表存储位置是连续的,一般顺序表的长度有限,而链表是通过指针来定位下一个元素的位置,所以没有长度的限制,随时可以增加。不过链表操作起来不如顺序表方便,顺序表可以通过计算地址来定位需要的元素,链表只能从头到尾来找需要的元素。

哦,是这样的哦,