比较顺序存储结构和链式存储结构-副本

比较顺序存储结构和链式存储结构-副本

ID:34778199

大小:238.63 KB

页数:3页

时间:2019-03-10

比较顺序存储结构和链式存储结构-副本_第1页
比较顺序存储结构和链式存储结构-副本_第2页
比较顺序存储结构和链式存储结构-副本_第3页
资源描述:

《比较顺序存储结构和链式存储结构-副本》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1、试比较顺序存储结构和链式存储结构的优缺点。在什么情况下用顺序表比链表好?答:①顺序存储时,相邻数据元素的存放地址也相邻;内存中可用存储单元的地址必须是连续的。优点:存储密度大(=1),存储空间利用率高。缺点:插入或删除元素时不方便。②链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针.优点:插入或删除元素时很方便,使用灵活。缺点:存储密度小(<1),存储空间利用率低。顺序表适宜于做查找这样的静态操作;链表宜于做插入,删除这样的动态操作。若线性表的长度变化

2、不大,且其主要操作是查找,则采用顺序表;若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。顺序表与链表的比较基于空间的比较-存储分配方式:顺序表的存储空间是静态分配的;链表的存储空间是动态分配的存储密度=结点数据本身所占的存储量/结点结构所占的存储总量:顺序表的存储密度=1;链表的存储密度<1基于时间的比较存取方式:顺序表可以随机存取,也可以顺序存取;链表是顺序存取的;插入/删除时移动元素个数;顺序表平均需要移动近一半元素;链表不需要移动元素,只需要修改指针顺序表和链表的比较顺序表和链表各有短长。在实

3、际应用中究竟选用哪一种存储结构呢?这要根据具体问题的要求和性质来决定。通常有以下几方面的考虑:┌───┬───────────────┬───────────────┐││  顺序表   │  链表   │├─┬─┼───────────────┼───────────────┤│基│分│静态分配。程序执行之前必须明确规│动态分配只要内存空间尚有空闲,││于│配│定存储规模。若线性表长度n变│就不会产生溢出。因此,当线性表││空│方│化较大,则存储规模难于预先确定│的长度变化较大,难以估计其存储││间│式│估计过大将

4、造成空间浪费,估计太│规模时,以采用动态链表作为存储││考││小又将使空间溢出机会增多。│结构为好。││虑├─┼───────────────┼───────────────┤││存│为1。当线性表的长度变化不大,│<1│││储│易于事先确定其大小时,为了节约││││密│存储空间,宜采用顺序表作为存储││││度│结构。││├─┼─┼───────────────┼───────────────┤│基│存│随机存取结构,对表中任一结点都│顺序存取结构,链表中的结点,需││于│取│可在O(1)时间内直接取得│从头指针起顺

5、着链扫描才能取得。││时│方│线性表的操作主要是进行查找,很│││间│法│少做插入和删除操作时,采用顺序│││考││表做存储结构为宜。│││虑├─┼───────────────┼───────────────┤││插│在顺序表中进行插入和删除,平均│在链表中的任何位置上进行插入和│││入│要移动表中近一半的结点,尤其是│删除,都只需要修改指针。对于频│││删│当每个结点的信息量较大时,移动│繁进行插入和删除的线性表,宜采│││除│结点的时间开销就相当可观。│用链表做存储结构。若表的插入和│││操││删除主要发生在表

6、的首尾两端,则│││作││采用尾指针表示的单循环链表为宜│为什么在单循环链表中设置尾指针比设置头指针更好?答:尾指针是指向终端结点的指针,用它来表示单循环链表可以使得查找链表的开始结点和终端结点都很方便,设一带头结点的单循环链表,其尾指针为rear,则开始结点和终端结点的位置分别是rear->next->next和rear,查找时间都是O(1)。若用头指针来表示该链表,则查找终端结点的时间为O(n)。在链表中设置头结点有什么好处?头结点即在链表的首元结点之前附设的一个结点,该结点的数据域可以为空,也可存放表长度等附加

7、信息,其作用是为了对链表进行操作时,可以对空表、非空表的情况以及对首元结点进行统一处理,编程更方便。1.队列先进先出,栈先进后出。2.对插入和删除操作的"限定"。栈是限定只能在表的一端进行插入和删除操作的线性表。队列是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。从"数据结构"的角度看,它们都是线性结构,即数据元素之间的关系相同。但它们是完全不同的数据类型。除了它们各自的基本操作集不同外,主要区别是对插入和删除操作的"限定"。栈和队列是在程序设计中被广泛使用的两种线性数据结构,它们的特点在于基本操作的特殊

8、性,栈必须按"后进先出"的规则进行操作,而队列必须按"先进先出"的规则进行操作。和线性表相比,它们的插入和删除操作受更多的约束和限定,故又称为限定性的线性表结构。3.遍历数据速度不同。栈只能从头部取数据也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间,保持数据在遍历前的一致性队列怎不同,他基于地址指针进行遍

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。