文档介绍:: .
1、试比较顺序存储结构和链式存储结构的优缺点。在什么情况下用顺序表比链表好?
答:①顺序存储时,: .
1、试比较顺序存储结构和链式存储结构的优缺点。在什么情况下用顺序表比链表好?
答:①顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。
优点:存储密度大(=1),存储空间利用率高。缺点:插入或删除元素时不方便。
②链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
优点:插入或删除元素时很方便,使用灵活。缺点:存储密度小(<1),存储空间利用率低。
顺序表适宜于做查找这样的静态操作;链表宜于做插入、删除这样的动态操作。
若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;
若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。
顺序表与链表的比较
基于空间的比较
存储分配的方式
顺序表的存储空间是静态分配的
链表的存储空间是动态分配的
存储密度=结点数据本身所占的存储量/结点结构所占的存储总量
顺序表的存储密度=1
链表的存储密度<1
基于时间的比较
存取方式
顺序表可以随机存取,也可以顺序存取
链表是顺序存取的
插入/删除时移动元素个数
顺序表平均需要移动近一半元素
链表不需要移动元素,只需要修改指针
顺序表和链表的比较
顺序表和链表各有短长。在实际应用中究竟选用哪一种存储结构呢?这要根据具体问题的要求和性质来决定。通常有以下几方面的考虑:
顺序表丨链表
11
□
r~~d
基丨分丨静态分配。程序执行之前必须明确丨动态分配只要内存空间尚有空闲,I于丨配丨规定存储规模。若线性表长度n变丨就不会产生溢出。因此,当线性表|空丨方丨化较大,则存储规模难于预先确定丨的长度变化较大,难以估计其存储I
间丨式丨估计过大将造成空间浪费,估计太丨规模时,以采用动态链表作为存储I
考丨丨小又将使空间溢出机会增多。丨结构为好。
虑I―I11
丨存丨为1。当线性表的长度变化不大,丨<1
丨储丨易于事先确定其大小时,为了节约丨
丨密丨存储空间,宜采用顺序表作为存储丨
丨度丨结构。丨丨基丨存丨随机存取结构,对表中任一结点都I于丨取丨可在0(1)时间内直接取得丨时I方丨线性表的操作主要是进行查找,很丨间I法I少做插入和删除操作时,采用顺序I考II表做存储结构为宜。I虑I——I