1.当栈中元素为n个时,做进栈运算发生上溢,证明栈的最大容量为n
2.栈和队列具有相同的逻辑结构
3.若一个栈的输入序列为p1,p2,p3,....,pn,输出序列为1,2,3,...,n,若p3=1,则p1的值为(C)
A.可能是2 B.一定是2 C.不可能是2 D.不可能是3
4.若已知一个栈的入栈序列是1,2,3,4,其出栈序列为P1,P2,P3,P4,则P2,P4不可能是(C)
A.2,4 B.2,1 C.4,3 D.3,4
5.一个栈的入栈序列为1,2,3,....,n,出栈序列为P1,P2,P3,.....,Pn,若P2=3,则P3的可能取值个数为(C)
A.n-3 B.n-2 C.n-1 D.无法确定
6.设栈的初始状态为空,当字符序列"n1_"作为栈的输入时,输出长度为3,且可用做C语言的标识符的序列有(C)个
A.4 B.5 C.3 D.6
7.元素a,b,c,d,e依次进入初始为空的栈中,若元素进栈后可停留,可出栈,直到所有元素都出栈,则在所有可能的出栈序列中,以d开头的序列个数为(B)
A.3 B.4 C.5 D.6
8.利用共享栈的好处是节省存储空间,降低发生上溢的可能
答:因为栈的插入和删除操作均在栈顶进行,所以只有可能发生上溢
9.下列关于栈的叙述,错误的是(C)
①.采用非递归方式重写递归程序时必须用到栈 反例:斐波那切数列
②.函数调用时,系统要用栈保存必要的信息
③.只要确定了入栈次序,即可确定出栈次序
④.栈是一种操作受限的线性表,允许在两端操作
A.仅① B.仅①、②、③ C.仅①、③、④ D.仅②、③、④
10.对于链队,在进行出队操作时(D)
A.仅修改头指针
B.仅修改尾指针
C.头尾指针都要修改
D.头尾指针可能都要修改
答:出队一个元素只需修改头指针,出队所有元素则需要修改头尾指针
11.循环队列存储在数组[0,....,m]中,则入队时的操作为(D)
A.rear=rear+1 B.rear=(rear+1)%(m-1) C.rear=(rear+1)%m D.rear=(rear+1)%(m+1)
答:rear=(rear+1)%maxsize中的maxsize指的是数组最大元素个数
12.最大容量为maxsize的循环队列,队尾指针为rear,队首指针为front,则队空条件为rear==front
13.栈和队列的共同点为都只允许在端点处进行插入和删除元素
14.最不适合用作链栈的链表是(以下链表没有头结点)(D)
A.只有表头指针,没有表尾指针的循环双链表
B.只有表尾指针,没有表头指针的循环双链表
C.只有表尾指针,没有表头指针的循环单链表
D.只有表头指针,没有表尾指针的循环单链表
答:选项D在插入元素时无法快速更新尾结点的next域,也就是不方便找到开始节点的前驱结点
15.设循环队列的下标范围为0~n-1,其头、尾指针分别为 f 和 r ,则其元素个数为(r-f+n)%n
答:画图即可
16.最适合用作链队的链表(链表有头结点,有队首指针则指向头结点,有队尾指针则指向尾结点)的是(B)
A.只带队首指针的循环单链表
B.只带队尾指针的循环单链表
C.只带队首指针的非循环单链表
D.只带队尾指针的非循环单链表
17.最不适合用作队列的链表是(A)
A.只带队首指针的非循环双链表
B.只带队首指针的循环双链表
C.只带队尾指针的循环双链表
D.只带队尾指针的循环单链表
答:A选项找到尾结点的时间复杂度为O(n),其余选项入队出队均为O(1)
18.用单链表(含头结点)表示的队列的队头在链表的(BC)位置
A.链头 B.链尾 C.链中 D.以上都可以
答:当队列元素多于1个时,队头在链表的链中位置(链中位置指的是除去表头结点和表尾结点以外的节点位置,头结点算是链头位置);当队列元素只有1个时,队头节点在链表的链尾位置
19.已知一个栈的进栈序列为p1,p2,p3,...,pn,输出序列为1,2,3,.....,n,若p3=1,则p1(C)
A.可能是2 B.一定是2 C.不可能是2 D.不可能是3
答:p3为1且1为第一个出栈元素,说明p1,p2,p3连续进栈,第二个出栈元素为2,而此时栈顶为p2,p1在栈底,因此只有p2,p3,...,pn这些元素之一为2,p1不可能为2
20.元素a,b,c,d,e依次进入初始为空的栈中,若元素进栈后可停留、可出栈,直到所有元素出栈,则在所有可能的出栈序列中,d开头的序列个数为4
答:由题意得abc已连续入栈,因此abc的栈内先后顺序已定,....c.....b.....a.....,加上d的位置已定,则出栈序列满足d....c.....b.....a.....,刚好4种,学会这种方法
21.一个栈的入栈序列为1,2,3,....,n,出栈序列为p1,p2,....,pn,若p2=3,则p3可能取值个数为n-1
22.栈的应用不包括缓冲区,缓冲区是用队列实现的,递归,进制转换,迷宫求解都是栈的经典应用
23.页面替换算法用到的是队列
24.