栈和队列基础概念题

对未来的真正慷慨,是把一切献给现在。

🎓1.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出

栈的顺序是( B)。
A 12345ABCDE
B EDCBA54321
C ABCDE12345
D 54321EDCBA

💎2.若进栈序列为 1,2,3,4 ,进栈过程中可以出栈,则下列不可能的一个出栈序列是(C

A 1,4,3,2
B 2,3,4,1
C 3,1,4,2
D 3,4,2,1

🔋3.循环队列的存储空间为 Q(1:100) ,初始状态为 front=rear=100 。经过一系列正常的入队与退队操作后, front=rear=99 ,则循环队列中的元素个数为(D

A 1
B 2
C 99
D 0

🎹4.以下(B )不是队列的基本运算?

A 从队尾插入一个新元素
B 从队列中删除第i个元素
C 判断一个队列是否为空
D 读取队头元素的值

🎯5.现有一循环队列,其队头指针为front,队尾指针为rear;循环队列长度为N。其队内有效长度为(B)?(假设队头不存放数据)

A (rear - front + N) % N + 1
B (rear - front + N) % N
C ear - front) % (N + 1)
D (rear - front + N) % (N - 1)

if(rear>front)

在这里插入图片描述
有效长度=rear-front

else if(rear<front)

在这里插入图片描述
有效长度=rear+N-front

else

队列为空

我们用第二种情况去考虑所有情况,发现宁外两种情况的有效长度都多了N,此时模N就行。

所以通解为:

循环有效长度=(rear+N-front)%N

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yuucho

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值