数据结构及应用算法教程习题第四章 栈和队列
更新时间:2023-12-08 16:19:01 阅读量: 教育文库 文档下载
第四章 栈和队列
一、选择题
1.对于栈操作数据的原则是(B )。
A.先进先出 B.后进先出 C.后进后出 D.不分顺序 2.一个栈的输入序列为123?n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是( B )。
A.不确定 B.n-i+1 C.i D.n-i 3.有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?( C )
A.5 4 3 6 1 2 B.4 5 3 1 2 6 C.3 4 6 5 2 1 D.2 3 4 1 5 6 4.设栈的输入序列是1,2,3,4,则( )不可能是其出栈序列。 A.1,2,4,3, B.2,1,3,4, C.1,4,3,2, D.4,3,1,2, E.3,2,1,4,
5.某堆栈的输入序列为a, b,c ,d,下面的四个序列中,不可能是它的输出序列的是( )。
A.a,c,b,d B.b, c,d,a C.c, d,b, a D.d, c,a,b 6.设有三个元素X,Y,Z顺序进栈(进的过程中允许出栈),下列得不到的出栈排列是( )。
A.XYZ B.YZX C.ZXY D.ZYX 7.输入序列为ABC,可以变为CBA时,经过的栈操作为( B ) A.push,pop,push,pop,push,pop B.push,push,push,pop,pop,pop C.push,push,pop,pop,push,pop D.push,pop,push,push,pop,pop 8.若一个栈以向量V[1..n]存储,初始栈顶指针top为n+1,则下面x进栈的正确操作是( C )。
A.top:=top+1; V [top]:=x B.V [top]:=x; top:=top+1 C.top:=top-1; V [top]:=x D.V [top]:=x; top:=top-1 10.栈在( D )中应用。
A.递归调用 B.子程序调用 C.表达式求值 D.A,B,C 11.一个递归算法必须包括( B )。
A.递归部分 B.终止条件和递归部分 C.迭代部分 D.终止条件和迭代部分 12.执行完下列语句段后,i值为:( ) int f(int x)
{ return ((x>0) ? x* f(x-1):2);} int i ; i =f(f(1));
A.2 B.4 C.8 D.无限递归 13.表达式a*(b+c)-d的后缀表达式是( B )。
A.abcd*+- B.abc+*d- C.abc*+d- D.-+*abcd
14.设计一个判别表达式中左,右括号是否配对出现的算法,采用( D )数据结构最佳。
A.线性表的顺序存储结构 B.队列 C.线性表的链式存储结构 D.栈
15.用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时( A )。
A.仅修改队头指针 B.仅修改队尾指针
C.队头、队尾指针都要修改 D.队头,队尾指针都可能要修改
16.假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为( A )。
A.(rear-front+m)%m B.rear-front+1 C.(front-rear+m)%m D.(rear-front)%m
17.循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是( A )。
A.(rear-front+m)%m B.rear-front+1 C.rear-front-1 D.rear-front 18.循环队列存储在数组A[0..m]中,则入队时的操作为( C )。 A.rear=rear+1 B.rear=(rear+1) mod (m-1) C.rear=(rear+1) mod m D.rear=(rear+1)mod(m+1)
19.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?( B )
A.1和 5 B.2和4 C.4和2 D.5和1 21.最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是 ( B )。
A.(rear+1) MOD n=front B.rear=front C.rear+1=front D.(rear-l) MOD n=front 22.栈和队列的共同点是( C )。
A.都是先进先出 B.都是先进后出 C.只允许在端点处插入和删除元素 D.没有共同点 23.栈和队都是( C )
A.顺序存储的线性结构 B.链式存储的非线性结构 C.限制存取点的线性结构 D.限制存取点的非线性结构
24.设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少应该是( )。
A.6 B.4 C.3 D.2 二、填空题
1._______是限定仅在表尾进行插入或删除操作的线性表。
2.设有一个空栈,栈顶指针为1000H(十六进制),现有输入序列为1,2,3,4,5,经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH之后,输出序列是_______,而栈顶指针值是_______H。设栈为顺序栈,每个元素占4个字节。
4.在作进栈运算时应先判别栈是否_(1)_;在作退栈运算时应先判别栈是否_(2)_;当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为_(3)_。 6.用S表示入栈操作,X表示出栈操作,若元素入栈的顺序为1234,为了得到1342出栈顺序,相应的S和X的操作串为_______。
7.循环队列的引入,目的是为了克服_______。 8.________又称作先进先出表。
9.已知链队列的头尾指针分别是f和r,则将值x入队的操作序列是_______。 10.区分循环队列的满与空,只有两种方法,它们是______和______。 11.设循环队列用数组A[1..M]表示,队首、队尾指针分别是FRONT和TAIL,判定队满的条件为_______。
12.表达式求值是_______应用的一个典型例子。
13.循环队列用数组A[0..m-1]存放其元素值,已知其头尾指针分别是front和rear ,则当前队列的元素个数是_______。
14.设Q[0..N-1]为循环队列,其头、尾指针分别为P和R,则队Q中当前所含元素个数为_______。 三、应用题
1.有5 个元素,其入栈次序为:A,B,C,D,E,在各种可能的出栈次序中,以元素C,D最先出栈(即C第一个且D第二个出栈)的次序有哪几个? 5.如果用一个循环数组q[0..m-1]表示队列时,该队列只有一个队列头指针front,不设队列尾指针rear,而改置计数器count用以记录队列中结点的个数。 (1)编写实现队列的三个基本运算:判空、入队、出队 (2)队列中能容纳元素的最多个数是多少?
参考答案
一、选择题 1.B 2.B 3.C 4.D
5.D 6.C 7.B 8.C 9.B 10.D 11.B 12.B
13.B 14.D 15.D 16.A 17.A 18.D 19.B 20.C 21.B 22.C 23.C 24.C
二、填空题
1、栈 2、23 100CH 3、0 n+1 top[1]+1=top[2]
4、(1)满 (2)空 (3)n (4)栈底 (5)两栈顶指针相邻(即值之差的绝对值为1)
5、链式存储结构 6、S×SS×S×× 7、假溢出时大量移动数据元素。 8、队列
9、s=(LinkedList)malloc(sizeof(LNode)); s->data=x;s->next=r->next;r->next=s;r=s;
10、牺牲一个存储单元 设标记
11、(TAIL+1)MOD M=FRONT (数组下标0到M-1,若一定使用1到M,则取模为0者,值改取M
12、栈 13、(rear-front+m)% m; 14、(R-P+N)% N; 三、应用题
1、三个:CDEBA,CDBEA,CDBAE
2、借助栈结构,n个入栈元素可得到1/(n+1)((2n)!/(n!*n!))种出栈序列。本题4个元素,可有14种出栈序列,abcd和dcba就是其中两种。但dabc和adbc是不可能得到的两种。 5、typedef struct
{elemtp q[m];
int front,count; //front是队首指针,count是队列中元素个数。 }cqnode; //定义类型标识符。
(1)判空:int Empty(cqnode cq) //cq是cqnode类型的变量
{if(cq.count==0) return(1);else return(0); //空队列} 入队: int EnQueue(cqnode cq,elemtp x)
{if(count==m){printf(“队满\\n”);exit(0); }
cq.q[(cq.front+count)%m]=x; //x入队
count++; return(1); //队列中元素个数增加1,入队成功。
}
出队: int DelQueue(cqnode cq)
{if (count==0){printf(“队空\\n”);return(0);} printf(“出队元素”,cq.q[cq.front]); x=cq.q[cq.front];
cq.front=(cq.front+1)%m; //计算新的队头指针。
正在阅读:
人民防空工程质量验收与评价标准RFJ01-201503-20
秉道教育--2013年华东政法大学硕士研究生招生简章05-25
环境空气质量指数(AQI)日报技术规定05-25
九九重阳,悠悠爱心作文优秀06-14
美术鉴赏完善版 - 图文03-30
长沙理工大学测量学复习题及答案10-30
2017-2018年湖北省恩施州利川市八年级上学期期末物理试卷和答案12-18
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 数据结构
- 第四章
- 队列
- 习题
- 算法
- 应用
- 教程
- 计算机系统维护实训报告
- PHP程序设计习题答案
- 马克思世界历史理论的当代意义研究
- 伯杰氏细菌系统分类学手册
- 实训四+Excel2010的操作
- 上海 牛津英语 4A M3 unit1In our school 词汇语法和试卷习题
- 17年新教材七年级语文(部编版)古文课内外比较阅读(有标准答案,有译文)
- powerpoint的试题
- 雅思词汇记忆的运用方法是什么?
- LC-RX I型 简介
- 在全市社区建设工作推进会议上的讲话
- 2017年“专转本”计算机应用基础模拟试题(含答案)
- 2004-2005学年度第二学期七年级调研考试语文试题(05)
- 2016-2018年江西中考语文试卷分析
- 第五届(2014年)校园文化艺术节活动方案
- 2012四川省公务员常识(绝对全)考试题库
- 黄亮与李燕的故事(文本)
- 衬砌检算
- 操作系统-进程同步习题答案(22)
- 人力资源部SOP(标准操作手册)