数据结构作业第3章
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章栈、队列
1. 填空
(1)设有一个空栈,栈顶指针为1000H,现有输入序列为1、2、3、4、5,经过push,push,pop,push,pop,push,push后,输出序列是(),栈顶指针为()。
(2)栈通常采用的两种存储结构是();其判定栈空的条件分别是(),判定栈满的条件分别是()。
(3)()可作为实现递归函数调用的一种数据结构。
(4)栈和队列是两种特殊的线性表,栈的操作特性是(),队列的操作特性是(),栈和队列的主要区别在于()。
(5)循环队列的引入是为了克服()。
(6)数组Q[n]用来表示一个循环队列,front为队头元素的前一个位置,rear为队尾元素的位置,计算队列中元素个数的公式为()。
2. 选择题
(1)若一个栈的输入序列是1,2,3,…,n,输出序列的第一个元素是n,则第i个输出元素是()。
A 不确定
B n-i
C n-i-1
D n-i+1
(2)设栈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
(3)一个栈的入栈序列是1,2,3,4,5,则栈的不可能的输出序列是()。
A 54321
B 45321
C 43512
D 12345
(4)设计一个判别表达式中左右括号是否配对的算法,采用()数据结构最佳
A 顺序表
B 栈
C 队列
D 链表
(5)在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印缓冲区,该缓冲区应该是一个()结构。
A 栈B队列 C 数组 D线性表
(6)一个队列的入队顺序是1,2,3,4,则队列的输出顺序是()。
A 4321
B 1234
C 1432
D 3241
(7)栈和队列的主要区别在于()。
A 它们的逻辑结构不一样
B 它们的存储结构不一样
C 所包含的运算不一样
D 插入、删除运算的限定不一样
3. 判断题
(1)栈可以作为实现过程调用的一种数据结构。
(2)在栈满的情况下不能做进栈操作,否则将产生“上溢”。
(3)在循环队列中,front指向队头元素的前一个位置,rear指向队尾元素的位置,则队满的条件是front=rear。
4. 设有一个栈,元素进栈的次序为A,B,C,D,E,能否得到如下出栈序列,若能,
请写出操作序列,若不能,请说明原因。
⑴ C,E,A,B,D
⑵ C,B,A,D,E
5. 举例说明顺序队列的“假溢出”现象。
6.在操作序列push(1)、push(2)、pop、push(5)、push(7)、pop、push(6)之后,栈顶元
素和栈底元素分别是什么?(push(k)表示整数k入栈,pop表示栈顶元素出栈。)
7.在操作序列EnQueue(1)、 EnQueue(3)、 DeQueue、EnQueue(5)、EnQueue(7)、DeQueue、
EnQueue(9)之后,队头元素和队尾元素分别是什么?(EnQueue(k)表示整数k入队,DeQueue 表示队头元素出队)。
8. 算法设计
(1)假设以不带头结点的循环链表表示队列,并且只设一个指针指向队尾结点,但不设头指针。试设计相应的入队和出队的算法。(实验报告选择题目)
学习自测及答案
1.在一个具有n个单元的顺序栈中,假定以地址低端(即下标为0的单元)作为栈底,以top作为栈顶指针,当出栈时,top的变化为()。
A 不变
B top=0;
C top=top-1;
D top=top+1;
2.一个栈的入栈序列是a, b, c, d, e,则栈的不可能的出栈序列是()。
A edcba
B cdeba
C debca
D abcde
3.从栈顶指针为top的链栈中删除一个结点,用x保存被删除结点的值,则执行()。
A x=top; top=top->next;
B x=top->data;
C top=top->next; x=top->data;
D x=top->data; top=top->next;
4.对于栈和队列,无论它们采用顺序存储结构还是链接存储结构,进行插入和删除操作的时间复杂度都是()。
5.简述队列和栈这两种数据结构的相同点和不同点。
6. 设计算法把一个十进制整数转换为二至九进制之间的任一进制数输出。(实验报告选择题目)
7.假设一个算术表达式中可以包含三种括号:圆括号“(”和“)”,方括号“[”和“]”以及花括号“{”和“}”,且这三种括号可按任意的次序嵌套使用。编写算法判断给定表达式中所含括号是否配对出现。(实验报告选择题目)