A. 叙述线性表两种存储结构各自的主要特点
两种存储结构各自的主要特点
1、顺序存储结构:存储单元地址连续,它以“物理位置相邻”来表示线性表中数据元素间的逻辑关系,可随机存取表中任一元素。
2、链式存储结构:存储单元地址为任意一组,它的存储单元可以是连续的,也可以是不连续的。
在表示数据元素之间的逻辑关系时,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置),这两部分信息组成数据元素的存储映像,称为结点(node)。
(1)顺序存储结构的存储密度是多少扩展阅读:
线性表结构特点
1、均匀性
虽然不同数据表的数据元素可以是各种各样的,但对于同一线性表的各数据元素必定具有相同的数据类型和长度。
2、有序性
各数据元素在线性表中的位置只取决于它们的序号,数据元素之前的相对位置是线性的,即存在唯一的“第一个“和“最后一个”的数据元素,除了第一个和最后一个外,其它元素前面均只有一个数据元素(直接前驱)和后面均只有一个数据元素(直接后继)。
B. 链式存储结构的存储密度小,反而空间利用率却比顺序存储结构的大为什么
因为链式存储结构的存储空间在逻辑上是连续的,但是在物理上是离散的;而顺序存储结构的存储空间在逻辑上是连续的,在物理上也是连续的。
链式存储可以将一些零碎的小空间链接起来组成逻辑上连续的空间,因此空间利用率较高;而顺序存储是占用磁盘上一片连续的物理空间,小于存储要求的那些空间不能被使用,因此会跳过那些小存储空间,往后寻找满足要求的连续的存储空间,于是空间利用率就变低了。
但是,顺序存储中所有存储单元存储的都是数据信息;而链式存储中每个存储节点除了存储数据信息外,还需要使用一个链域来指向下一个存储结点,这样就可以将物理上离散的空间链接成逻辑上连续的,因此存储同样大小的内容时,链式存储所用空间比顺序存储所用空间要大,所以存储密度就小些。
C. 关于数据结构的题
( × )1. 链表的每个结点中都恰好包含一个指针。
答:错误。链表中的结点可含多个指针域,分别存放多个指针。例如,双向链表中的结点可以含有两个指针域,分别存放指向其直接前趋和直接后继结点的指针。
( × )2. 链表的物理存储结构具有同链表一样的顺序。
错,链表的存储结构特点是无序,而链表的示意图有序。
( × )3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
错,链表的结点不会移动,只是指针内容改变。
( × )4. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
错,正好说反了。顺序表才适合随机存取,链表恰恰适于“顺藤摸瓜”
( × )5. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
错,前一半正确,但后一半说法错误,那是链式存储的优点。顺序存储方式插入、删除运算效率较低,在表长为n的顺序表中,插入和删除一个数据元素,平均需移动表长一半个数的数据元素。
( × )6. 线性表在物理存储空间中也一定是连续的。
错,线性表有两种存储方式,顺序存储和链式存储。后者不要求连续存放。
( √ )7. 栈和队列的存储方式既可是顺序方式,也可是链接方式。
( √ )8. 两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。
( × )9. 队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。 错,后半句不对。
( × )10. 一个栈的输入序列是12345,则栈的输出序列不可能是12345。 错,有可能。
D. 栈的顺序存储和链表存储的差异
顺序存储: 线性表的顺序表:指的是用一组地址连续的存储单元,依次存储线性表的数据元素。
线性表的顺序存储结构具备如下两个基本特征: 1、线性表中的所有元素所占的存储空间是连续的(即要求内存中可用存储单元的地址必须是连续的)。 2、线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 即:线性表逻辑上相邻、物理也相邻(逻辑与物理统一:相邻数据元素的存放地址也相邻),则已知第一个元素首地址和每个元素所占字节数,则可求出任一个元素首地址。 优点: 1、
无须为表示结点间的逻辑关系而增加额外的存储空间。
2、
可以方便的随机存取表中的任一结点。
3、
存储密度大(=1),存储空间利用率高。 缺点: 1、
插入和删除运算不方便,需移动大量元素。 2、
由于要求占用连续的存储空间,存储分配只能按最大存储空间预先进行,致使存储空间不能得到充分利用。
3、
表的容量难以扩充。 链表存储: 线性表的链式存储:指用一组任意的存储单元存储线性表中的数据元素。
线性表的链式存储结构具备的基本特征: 链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针。 优点: 1、
插入、删除操作很方便,可通过修改结点的指针实现,无须移动元素。
2、
方便扩充存储空间。
缺点: 1、
不能随机存取元素。
2、
存储密度小(<1),存储空间利用率低。 总结: 1、
顺序表适宜于做查找这样的静态操作;
链表宜于做插入、删除这样的动态操作。 2、若线性表的长度变化不大,且其主要操作是查找,则采用顺序表; 若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。
E. 链式存储结构比顺序存储结构节省存储空间吗
不是,因为链式存除了数据域,还需要指针域。
F. 线性表顺序存储结构的存储密度大于线性表的链式存储结够对不对
对,顺序存储是一个挨着一个,不需要附加的空间来表明数据元素的逻辑关系,但是链式存储需要至少一个数据域来存放逻辑关系
G. 顺序存储结构针对什么结构顺序存储结构能存什么顺序存储结构的特征是什么
顺序存储一般使用数组实现。存的当然是节点,节点是你自己定义的数据类型,特征:随机存取,占用连续的存储空间,静态分配,存储密度等于1等等。
H. 链式存储结构和顺序存储结构的区别
区别如下:
1、链表存储结构的内存地址不一定是连续的,但顺序存储结构的内存地址一定是连续的。
2、链式存储适用于在较频繁地插入、删除、更新元素是,而顺序存储结构适用于频繁查询时使用。
3、顺序比链式节约空间,是因为链式结构每一个节点都有一个指针存储域。顺序支持随机存取,方便操作。链式的要比顺序的方便,快捷。
官方一点来说可以使用网络的介绍:顺序存储结构是存储结构类型中的一种,该结构是把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。
当然不得不说一般这种官方的解释都是不太适合我的,所以用小甲鱼的方式来说这个概念的话,简单来说就是,用一段连续的地址存放数据元素,数据间的逻辑关系和物理关系相同。
优点1:存储密度大,空间利用度高,比链式存储节约空间。
优点2:存储操作上方便操作,顺序支持随机存取,查找会比较容易。
缺点1:插入或者删除元素时不方便,花费的时间更多。
I. 顺序存储结构的优点是存储密度大
顺序存储结构的优点肯定是存储密度会更大一点,而且它里面的存储的数据元素肯定会更多。
J. 为什么顺序表的存储密度为1(关于数据结构)
因为顺序存储是以空间位置来表示逻辑关系,所以不需要另外的空间存放数据元素的逻辑关系
这样自然存储密度为100%了