数据结构知识点总结(六)

1、在单链表和双向链表中,能否从当前结点出发访问任一结点? 

在单链表中只能有当前结点访问其后的任一结点,因为没有指向其前驱结点的指针。

在双向链表中既有指向其后继结点的指针又有指向其前驱结点的指针,故可由当前结点出发访问链表中的任一结点。 

2、线形表的两种存储结构有哪些优缺点? 

线形表具有两种存储结构,即顺序存储结构和链接存储结构。

线形表的顺序存储结构可以直接存取数据元素,方便灵活,效率高,但插入、删除操作时将会引起元素的大量移动,因而降低效率;

在链接存储结构中,内存采用动态分配,利用率高,但需要增设指示结点之间关系的指针域,存取数据元素不如顺序存储方便,但结点的插入、删除操作比较简单。

3、向一个长度为n的向量的第i个元素(1in+1)之前插入一个元素时,需向后移动 () 个元素。

参考答案:n-i+1

4、向一个长度为n的向量中删除第i个元素(1in)时,需向前移动()个元素。

参考答案:n-i 

5、何时选用顺序表、何时选用链表作为线性表的存储结构为宜?

在实际应用中,应根据具体问题的要求和性质来选择顺序表或链表作为线性表的存储结构,通常有以下几方面的考虑:

基于空间的考虑。当要求存储的线性表长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表;反之,当线性表长度变化大,难以估计其存储规模时,采用动态链表作为存储结构为好。

基于时间的考虑。若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为宜;反之, 若需要对线性表进行频繁地插入或删除等的操作时,宜采用链表做存储结构。并且,若链表的插入和删除主要发生在表的首尾两端,则采用尾指针表示的单循环链表为宜。

6、在顺序表中插入和删除一个结点需平均移动多少个结点?具体的移动次数取决于哪两个因素?

在等概率情况下,顺序表中插入一个结点需平均移动n/2个结点。删除一个结点需平均移动(n-1)/2个结点。具体的移动次数取决于顺序表的长度n以及需插入或删除的位置ii越接近n则所需移动的结点数越少。

7、顺序存储方式只能用于存储线性结构。

错。顺序存储方式不仅能用于存储线性结构,还可以用来存放非线性结构,例如完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式。

8、线性表在物理存储空间中也一定是连续的。

错。线性表有两种存储方式,顺序存储和链式存储。后者不要求连续存放。

9、向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动 ()个元素。

A8     B63.5         C63     D7

答案:B

10、链表是一种采用()存储结构存储的线性表。

A)顺序     B)链式         C)星式      D)网状

答案:B

来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=344

'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })();
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值