算法与数据结构1800题 之栈和队列 (一)

290 阅读3分钟

B

C 画图,易错

D 画图

C

队列在进行画图的时候,画在哪个格子不重要,重要的是队列里面的元素需要是连在一起的,可以将队列想象成循环队列,或者不限制空间的队列

B

数组型循环队列中,入队的元素在数组中的序号的计算方法:
(rear+1) % lengthOfArray
因为要求入队的元素的序号为0,所以 (rear+1) % lengthOfArry == 0;
即rear == n - 1;
所以开始的时候,front应该位于front的
rear在有的循环队列中会指向末尾元素的下一位,在有的循环队列中会指向末尾元素。
指向末尾元素下一位的,添加元素的过程:先将元素添加到末尾指针处,然后末尾指针(rear+1)% lengthOfArray;
指向末尾元素的,添加元素的过程:先将末尾指针移动一位:(rear+1)% lengthOfArray 然后将元素添加到rear处。
本题中,末尾指针是指向末尾元素的,所以是,先将指针循环向后移动一位,然后将元素添加到末尾指针处,由于要求元素添加在A【0】,因此,需要rear先指在A[0]的前一位,也就是最后一位
类比与通常情况,在添加元素的时候,头指针front是不动的,但是一定是指在待出队的元素的,所以如果只添加一个元素,添加完之后,front指针一定指在这个元素上,所以,front指向0

开始时,如果没有遇到括号,所有数字都进入后缀表达式中,所有操作符都进入栈中
左括号为无条件进栈
栈顶为左括号的时候,其他任何运算符都直接进栈
如果待进栈的运算符的优先级大于栈顶运算符的优先级,才能进栈,如果待进栈运算符的优先级小于栈顶运算符的优先级,必须将栈顶元素出栈,然后待进栈元素才能进栈
遇到右括号的时候,在运算符栈中左括号上的所有运算符退栈,左右括号同时消失

可能有两部分情况:
1,1入1出,2入不出,其余的所有元素,都可能在入站之后立刻出栈,所以其余的所有的元素,可能性等于他们的个数==n-3
2,1入不出,2入2出,其余所有元素一样
综合1,2,一共有 n -3 + 2 == n-1 种可能

B
栈中元素依次为:是指的是从栈底,依次到栈顶

A
如果队尾指针指向元素的后一位,那么在队尾入队的过称为 :
将元素添加到队尾指针处,然后队尾指针循环向后移动一位

A
count为打印

BACCF (F选项有疑问)

D

A,B
A同上
B

B

不会做

B

不会做

B
对ABCD分别进行中缀表达式转后缀表达式,看栈是否溢出
中缀转后缀: 如果待入栈的优先级高,则直接入栈,否则(包括优先级相同)先出后入

C

D

B

D

D

C

D

ABD 错误的选为了AD,对于B选项:也是可能的

B

AD

如果有n个圆盘,那么总的移动次数为2^n-1
视频讲解链接
https://www.bilibili.com/video/av9830115?from=search&seid=9085392221773721086