栈和队列 习题
来源:互联网 发布:淘宝货到付款卖家流程 编辑:程序博客网 时间:2024/06/05 19:41
第3章栈和队列
一、 单选题
1、栈的操作原则是()
A. 顺序进出 B。后进后出 C。后进先出 D。先进先出
2、若进栈序列为a,b,c,则通过入出栈操作可能得到的a,b,c的不同排列个数为()
A.4 B。5 C。6 D。7
3、按字母a,b,c,d,e顺序入栈,则出栈的输出序列不可能是()
A.decba B. dceab C. abcde D. edcba
4、判断一个顺序栈st(最多元素为StackSize)为栈满的条件是()
A.st.top!=StackSize B. st.top!=0
C.st.top==-1 D. st.top==StackSize-1
5、在向顺序栈中压入元素时()
A.先存入元素,后移动栈顶指针 B。谁先谁后无关紧要
C.先移动栈顶指针,后压入元素 D. 同时进行
6、一个队列的入队序列是1,3,5,7,9,则出队的输出序列只能是()
A.9,7,5,3,1 B. 1,3,5,7,9
C.1,5,9,3,7 D. 9,5,1,7,3
7、判断一个顺序队列sq(最到元素为QueueSize)为空队列的条件是()
A.sq.rear==sq.front B. sq.rear==0
C.sq.front==QueueSize D.sq.rear==QueueSize+1
8、判断一个循环队列cq(最多元素为QueueSize)为满队列的条件是()
A.cq.rear==cq.front B. cq.rear==QueueSize
C.(cq.rear+1)%QueueSize==cq.front
D.cq.rear%QueueSize+1==cq.front
9、若已知一个栈的入栈序列是1,2,…,n,其输出序列为p1,p2,…,pn,若p1=n,则pi为( )
A i B n-i C n-i+1 D 不确定
二、填空题
1、假设以S和X分别表示进栈和退栈操作,则对输入序列a,b,c,d,e进行一系列栈操作SSXSXSSXXX之后,得到的输出序列为________。
2、假设S.data[0..maxsize-1]为一个顺序存储的栈,变量top指示栈顶元素的位置。能做进栈操作的条件是_________;如果把栈顶元素弹出到x中,需执行下列语句:___________。
3、设顺序栈存放在S.data[0..maxsize-1]中,栈底位置是maxsize-1,则栈空的条件是__________;栈满的条件是___________。
4、若循环队列数组data[0..m-1]存储元素值,用front和rear分别作为头、尾指针,则当前元素个数为_________。
5、栈和队列都是________结构;对于栈,只能在_______插入和删除元素;对于队列,只能在_______插入元素,在_______删除元素。
三、判断题
1、栈上一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构( )
2、对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以说线性表。
3、栈和队列是一种非线性结构。
4、栈和队列的存储方式既可以说顺序方式,也可以是链式方式。
5、两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。
6、队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。
7、一个栈的输入序列是12345,则栈的输出序列不可能是12345。
四、解答题
1、如果编号为1,2,3的三辆列车进入一个栈式结构的站台,那么可能得到的三辆列车的出站序列有哪些?不可能出现的序列是什么?
2、假设输入栈的元素为a,b,c,在栈S的输出端得到一个输出序列为a,b,c,试写出在输入端所以可能的输入序列。
3、简述下面所给算法的功能是什么(假设栈元素为整数类型)。
(1)void ex31(SeqStack * S)
{ int A[80] , i , n;
n=0;
while(!empty(S))
{A[n]=pop(S);
n++;}
for(i=0; i<n; i++)
push (S, A[i]);
}
(2)void ex32 (SeqStack *S, int c)
{SeqStack T;
int d;
while (!StackEmpty(S))
{d=pop(S);
if (d!=c)
push(T,d);
}
While(!StackEmpty(T))
{d=pop(T);
Push(S,d); }
}
4、写出下列程序段的输出结果(栈结点数据域为字符型char)。
SeqStack S;
char x, y;
x=’c’;
y=’k’;
push(S,x);
push(S,y);
x=pop(S);
push(S,’t’);
push(S,x);
x=pop(S);
push(S,’s’);
while (!StackEmpty(S))
{ y=pop(S);
putchar(y);
}
putchar(x);
…...
一、选择题
1-5:CBBDC
6-10:BACC
二、填空题
1、bceda
2、top<maxsize-1 x=s.data[top]
3、top==maxsize top==0
4、(rear+m-front)%m
5、线性 栈顶 队尾 对头
三、判断题
1-5:ÖÖ´ÖÖ 6-7:´´
四、解答题
1、出站序列为:123; 132; 213; 231; 321
不可能出现的序列为:312
2、输入序列: abc; acb; bac; cab;cba
不可能的是bca
3、(1)将栈内容逆置
(2)将栈中等于c的元素删除
4、stack
- 栈和队列 习题
- 栈和队列(习题)
- 数据结构习题之栈和队列
- 栈和队列部分课后习题解
- 第3章 栈和队列综合习题(leetcode+vjudge)
- 数据结构学习笔记 --- 栈、队列 (习题)
- 数据结构学习笔记 --- 栈、队列 (习题)
- 寒風的C++之旅之栈和队列课后习题
- 算法-第四版-1.3 背包、队列和栈-习题索引汇总
- 栈和队列-第3章-《数据结构题集》习题解析-整理
- 栈和队列的应用相关习题及详解 ——数据结构
- 栈和队列--队列
- 【栈和队列】队列
- 数组队列习题
- 算法习题57:用两个栈实现队列
- 栈、队列和优先队列
- 栈和队列(队列)
- 习题3.12 另类循环队列
- 线性表习题
- const用法小注(实时更新)
- 什么是文档库?
- 如何才能成为成功的独立游戏开发者?
- Codeforces Round #147 (Div. 2) A题
- 栈和队列 习题
- 算法导论中的一道题
- ibatis缓存
- uva10465 - Homer Simpson(动规)
- 子查询SQL
- 数据库之五例的错误修改
- iOS数据库应用一:SQLite
- HD ACM Wolf and Rabbit
- cocos2dx----屏幕自适应