您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页数据结构第3章_栈和队列_练习题

数据结构第3章_栈和队列_练习题

来源:五一七教育网
第3章 栈和队列

一、选择题:

1.设一数列的输入顺序为1,2,3,4,5,6,通过栈操作不可能排成的输出序列为( ) (A)3,2,5,6,4,1 (B)l,5,4,6,2,3

(C)2,4,3,5,1,6 (D)4,5,3,6,2,1

2.设循环队列Q[l„n—1]的首尾指针为f和r,当插入元素时尾指针r加1,首指针f总是指在队列中第一个元素的前一个位置,则队列中元素计数为( )。 (A)r一f (B)n一(r一f) (C)(r—f十n)%n (D)(f一r十n)%n

3.若有一个栈的输入序列是l,2,„,n,输出序列的第一个元素是n,则第i个输出元素是( )。

(A) n-i (B) n-i-1 (C) n-i+1 (D) 不确定

4.设有一个栈,元素的进栈次序为A,B,C,D,E,下列( )是不可能的出栈序列 (A)A,B,C,D,E (B)B,C,D,E,A (C)E,A,B,C,D (D)E,D,C,B,A 5.队列操作的原则是( )。 (A)先进先出 (B)后进先出 (c)只能进行插入 (D)只能进行删除 二.程序填空:

己知STACK表示栈的数据结构,push为将一个值为e的元素进栈,若成功返回1,否则返回0。完成以下程序。 typedef struct { int data[100];

int top; /* 栈顶元素的下标 */ }STACK;

int push(STACK *s, int e) {

if(___ __) return 0; s->top++; ___ _____=e; return 1; }

三、编程题:

判断一个算术表达式的圆括号是否正确配对。

提示:对表达式进行扫描,凡遇到“(”就进栈,遇到“)”就退掉栈顶的“(”,表达式被扫描完毕,栈应为空。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务