【数据结构】线性表习题 |顺序表 |链表 |栈和队列

📖专栏文章:数据结构学习笔记
🪪作者主页:格乐斯

前言

线性表习题 |顺序表 |链表 |栈和队列

顺序表和链表

1、 在这里插入图片描述

选B

100+2(5-1)=108*

第i个元素地址X,元素长度Len,第j个元素地址Y

公式:Y=X+Len(j-i)*


2、

在这里插入图片描述

选A

对顺序表操作的算法时间复杂度是O(1)的只有访问任意结点,插入删除排序都是大于等于O(N)


3、 在这里插入图片描述

选B

顺序表总共127个元素,在最后一个元素之后插入需移动0次,在最后一个元素插入移动1次,倒数第二个元素插入移动2次,依次类推,在首元素插入移动127次

(0+1+…+127)/128=63.5

*公式:((0+n)n/(n+1)=n^2/(n+1)


4、在这里插入图片描述

选A

链式存储结构所占存储空间,一部分存放结点值,另一部分存放与其他结点有关系的指针


5、在这里插入图片描述

选D

链式结构的存储单元地址连续或不连续都可以


6、

在这里插入图片描述

选B

链式结构的对单个元素插入删除操作的时间复杂度是最小的O(1)

顺序结构的则是O(N)


7、

在这里插入图片描述

选C

存储密度是指一个结点数据本身所占的存储空间和整个结点所占的存储空间之比。

假设链表一个结点的数据域占空间为D,指针域占的空间为N,则存储密度为D/(D+N),一定是小于1的。


8、

在这里插入图片描述

选A

两个各有n个元素的有序表,如果第一个有序表的所有元素都小于第二个表中元素,那么第二个表的元素依次与第一个表的元素比较,只需要比较n次


9、

在这里插入图片描述

选B

长度为n的顺序表中,第i个元素之前插入新元素需要向后移动n-i+1个元素

就相当于问 3到10有几个数字,答案无疑是10-3+1=8个


10、在这里插入图片描述

选D

链表中首元素和尾元素没有直接前驱和直接后驱,除此之外都有前驱后驱且仅有一对

线性表的结点可以没有元素


11、在这里插入图片描述

选C

在链表末尾插入1个新结点需要先找到末尾结点,时间复杂度O(N)

若创建一个包含n个结点的单链表也就是末尾插入n个结点,则时间复杂度为O(N^2)


12、在这里插入图片描述

选D

链式结构和顺序结构各有优缺点,不存在一种结构优于另一种结构的说法


13、在这里插入图片描述

选D

链表结点后插法:先 新结点连接原结点,后 定位结点连接新结点


14、在这里插入图片描述

选A

单链表结点插入操作

在这里插入图片描述


15、在这里插入图片描述

选C

双链表结点插入操作


栈和队列

1、在这里插入图片描述

选C

模拟选项的出栈方式来判断选项


2、在这里插入图片描述

选C

从n往前数i个数,问数到第i个数是多少

n-i+1 (+1是因为本身也算数)

比如从10数到1,第三个数是10-3+1=8


3、在这里插入图片描述

选D

计算循环队列的元素个数,也就是求队列长度

假设n表示队列最大容量,r表示队尾元素的位置,f表示头元素前一位置,则元素个数为 (n+r-f)%n

4、在这里插入图片描述

选A

保存栈顶元素值并删除栈顶结点:x=top->data; top=top->link;


5、在这里插入图片描述

选A

条件n等于0时停止递进,0到n有n+1个数,所以函数调用次数为n+1次


6、在这里插入图片描述

选D

栈的特性是后进先出


7、在这里插入图片描述

选A

解决缓冲区问题应利用一种先进先出的线性表


8、在这里插入图片描述

选B

e2在e1前出栈,说明栈S至少两个元素;

像e4e3、e6e5这种降序元素组合在下文称作 “以某元素开头的降序组”;

降序组的最大长度为2,所以栈元素最大数量至少为2;

题目中以元素e4开头的降序组 排在 以元素e6开头的降序组之后,所以栈存在元素的最大数量不会增加;

但是如果反过来e6在e4前,最大数量就会增加2;

e1在降序组之后出栈,所以最大数量加1;

至此栈S的元素最大数量为3。


9、在这里插入图片描述

选C

初始栈顶指针top为n+1,故元素从高地址进栈;

top的运算从原先的++变–


10、在这里插入图片描述

选D

表达式求值采用后进先出的线性表,就是栈


11、在这里插入图片描述

选D

当队列中只有一个元素的时候,删除结点需要同时修改头尾指针


12、在这里插入图片描述

选D

循环队列入队操作rear指针的运算语句:rear=(rear+1)%MAXSIZE

数组A[0…m]总共有m+1个元素,所以入队操作为

rear=(rear+1)%(m+1);


13、在这里插入图片描述

选B

循环队列判断队空:rear==front


14、在这里插入图片描述

选C

栈和队列的共同点是 只允许在端点处插入和删除元素


15、在这里插入图片描述

选B

递归算法必要部分包括 终止条件和递归部分


总结

本文主要介绍了15道线性表习题 包括顺序表 、链表 、栈和队列


文章到这结束啦,感谢阅读~

如果文章的论述或代码等出现错误,欢迎前来指正!

如果你觉得文章写的还不错,记得点赞收藏评论三连~ ❤

img

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值