数据结构练习 第三章 栈和队列
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构练习第三章栈和队列
一、选择题
1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素
B.都是先进后出
C.都是先进先出
D.没有共同点
2.向顺序栈中压入新元素时,应当()。
A.先移动栈顶指针,再存入元素 B.先存入元素,再移动栈顶指针C.先后次序无关紧要 D.同时进行
3.允许对队列进行的操作有( )。
A. 对队列中的元素排序
B. 取出最近进队的元素
C. 在队头元素之前插入元素
D. 删除队头元素
4.用链接方式存储的队列,在进行插入运算时( ).
A. 仅修改头指针
B. 头、尾指针都要修改
C. 仅修改尾指针
D.头、尾指针可能都要修改
5.设用链表作为栈的存储结构则退栈操作()。
A. 必须判别栈是否为满
B. 必须判别栈是否为空
C. 判别栈元素的类型
D.对栈不作任何判别
6.设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为()。
A.front->next=s;front=s;
B. s->next=rear;rear=s;
C. rear->next=s;rear=s;
D. s->next=front;front=s;
7.设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为()。
A.top=top+1;
B. top=top-1;
C. top->next=top;
D. top=top->next;
8.队列是一种()的线性表。
A. 先进先出
B. 先进后出
C. 只能插入
D. 只能删除
9.设输入序列1、2、3、…、n经过栈作用后,输出序列中的第一个元素是n,则输出序列中的第i个输出元素是()。
A. n-i
B. n-1-i
C. n+l -i
D.不能确定
10.设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为()。
A. 5,3,4,6,1,2
B. 3,2,5,6,4,1
C. 3,1,2,5,4,6
D. 1,5,4,6,2,3
11.队列的删除操作是在()进行。
A.队首 B.队尾 C.队前 D.队后
12.当利用大小为N 的数组顺序存储一个栈时,假定用top = = N表示栈空,则退栈时,用()语句修改top指针。
A.top++; B.top=0; C.top--; D.top=N; 13.队列的插入操作是在()进行。
A.队首 B.队尾C.队前 D.队后14.若已有一个栈,输入序列为A,B,C,D,E,那么下面哪种序列不可能得到?()
A.ABCDE B.EDCBA C.BAEDC D.ECDBA (d) 注意: 入栈和出栈操作可以交替进行,因此就可能有多种输出序列了。15.栈和队列共同具有的特点是()
A.都是先进后出
B.都是先进先出
C.只允许在端点进行操作运算
D.既能先进先出,也能先进后出
16.若用一个有6个单元的数组来实现循环队列,rear和front的初值分别为0和3。则从队列中删除一个元素,再添加两个元素后,rear和front的值分别为()
A.1和5
B.2和4
C.4和2
D.5和1
17.一个栈的入栈序列是a,b,c,d,e,则栈的输出序列不可能
...是( ) A. dceab B. decba C. edcba D. abcde
18.元素大小为1个单元,容量为n个单元的非空顺序栈中,以地址高端为栈底,以top作为栈顶指针,则出栈处理后,top的值应修改为( )
A. top=top
B. top=n-1
C. top=top-1
D. top=top+1 19.设有一个栈,按A、B、C、D的顺序进栈,则可能为出栈序列的是( ) A.DCBA B.CDAB C.DBAC D.DCAB
20.在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top为栈顶指针,则当做出栈处理时,top变化为( )
A.top++
B.top--
C.top不变
D.top=0
21. 关于栈和队列的说法中正确的是()
A.栈和队列都是线性结构
B.栈是线性结构,队列不是线性结构
C.栈不是线性结构,队列是线性结构
D.栈和队列都不是线性结构
22. 设一个栈的输入序列是a,b,c,d,则所得到的输出序列(输入过程中允许出栈)不可能出现的是()
A.a,b,c,d B.a,b,d,c
C.d,c,b,a
D.c,d,a,b
23. 在具有m个单元的循环队列中,队头指针为front,队尾指针为rear,则队满的条件是()
A.front==rear B.(front+1)%m==rear
C.rear+1==front
D.(rear+1)%m==front
24. 循环队列存储在数组A[0..m]中,则入队时的操作为( D)。
A. rear=rear+1
B. rear=(rear+1) % (m-1)
C. rear=(rear+1) % m
D. rear=(rear+1) % (m+1)
25. 顺序栈S中top为栈顶指针,指向栈顶元素所在的位置,elem为存放栈的数组,则元素e进栈操作的主要语句为()
A.s.elem[top]=e;
B.s.elem[top+1]=e;
s.top=s.top+1; s.top=s.top+1;
C.s.top=s.top+1;
D.s.top=s.top+1;
s.elem[top+1]=e; s.elem[top]=e;