一、单项选择题
01.栈和队列具有相同的( ).
A.抽象数据类型 B.逻辑结构 C.存储结构 D.运算
02.栈是一种( ).
A.顺序存储的线性结构 B.链式存储的非线性结构
C.限制存取点的线性结构 D.限制存储点的非线性结构
03.下列选项中,( )不是栈的基本操作。
A.删除栈顶元素 B.删除栈底元素
C.判断栈是否为空 D.将栈置为空栈
04.假定用数组a[n]存储一个栈,初始栈顶指针top=-1,则元素x进栈的操作是( ).
A. a[--top]=x B. a [top--]=x C. a[++top]=x D. a[top++]=X
05.假定用数组a [ 1...n]存储一个栈,初始栈顶指针top=1,则元素x进栈的操作是( )
A.data[top--]=x B.data [top++]=x C. data[--top]=x D. data[++top]=x
06.假定用数组 a [1...n]存储一个栈,初始栈顶指针top=n+1,则元素x进栈的操作是( )
A. data[--top]=x B.data [top++]=x C. data[top--]=x D. data[++top]=x
07.设有一个空栈,栈顶指针为1000H,栈向高地址方向增长,每个元素需要一个存储单元,
执行Push、Push、Pop、Push、Pop、Push、Pop、Push 操作后,栈顶指针的值为( )。
A.1002H B.1003H C.1004H D.1005H
08.和顺序栈相比,链栈有一个比较明显的优势,即( )。
A.通常不会出现栈满的情况 B.通常不会出现栈空的情况
C.插入操作更容易实现 D.删除操作更容易实现
09.设链表不带头结点且所有操作均在表头进行,则下列最不适合作为链栈的是()。
A.只有表头结点指针,没有表尾指针的双向循环链表
B.只有表尾结点指针,没有表头指针的双向循环链表
C.只有表头结点指针,没有表尾指针的单向循环链表
D.只有表尾结点指针,没有表头指针的单向循环链表
10.向一个栈顶指针为top的链栈(不带头结点)中插入一个x结点,则执行()。
A. top->next=x B.x->next=top->next; top->next=x
C. x->next=top;top=x D.x->next=top; top=top->next
11.链栈(不带头结点)执行Pop操作,并将出栈的元素存在×中,应该执行()。
A. x=top; top=top->next B.x=top->data
C. top=top->next; x=top->data D. x=top->data; top=top->next
12.经过以下栈的操作后,变量x的值为().
Initstack(st); Push(st,a); Push(st,b); Pop (st,x); GetTop (st,x);
A. a B.b C.NULL D. false
13.3个不同元素依次进栈,能得到()种不同的出栈序列。
A.4 B.5 C. 6 D.7
14.设a, b, c, d,e,f以所给的次序进栈,若在进栈操作时,允许出栈操作,则下面得不到的
出栈序列为().
A. fedcba B. bcafed C. dcefba D. cabdef
15.4个元素依次进栈的次序为a, b,c,d,则以c, d开头的出栈序列的个数为()。
A.1 B.2 C. 3 D.4
16.用S表示进栈操作,用X表示出栈操作,若元素的进栈顺序是1234,为了得到1342的
出栈顺序,相应的S和X的操作序列为().
A. SXSXSSXX B. SSSXXSXX C. SXSSXXSX D. SXSSXSXX
17.若栈的输入序列是1,2,3,…, n,输出序列的第一个元素是n,则第i个输出元素是().
A.不确定 B. n-i C. n-i-1 D. n-i+1
18.若栈的输入序列是1,2,3,… ,n,输出序列的第一个元素是i,则第j个输出元素是()。
A. i-j-1 B. i-j C. j-i+1 D、不确定
19.某栈的输入序列为a, b, c,d,下面的4个序列中,不可能为其输出序列的是().
A. a, b, c, d B. c, b,d, a C. d, c, a, b D. a, c, b, d
20.若栈的输入序列是P1, P2…, Pn,输出序列是1,2,3,…,n,若P3=1,则P1的值( )
A.可能是2 B.一定是2 C.不可能是2 D.不可能是3
21.若栈的输入序列是P1,P2…, Pn输出序列是1,2,3,…, n,若P3=3,则P1的值()。
A.可能是2 B.不可能是1 C.一定是1 D.一定是2
22.已知栈的入栈序列是1,2,3,4,其出栈序列为P1,P2, P3,P4,则P2P4不可能是()。
A.2,4 B.2,1 C.4,3 D.3,4
23.设栈的初始状态为空,当字符序列“n1_”作为栈的输入时,输出长度为3,且可用做
C语言标识符的序列有()个。
A.4 B.5 C. 3 D.6
24.采用共享栈的好处是()。
A.减少存取时间,降低发生上溢的可能 B.节省存储空间,降低发生上溢的可能
C.减少存取时间,降低发生下溢的可能 D.节省存储空间,降低发生下溢的可能
25.设有一个顺序共享栈Share [0:n-1],其中第一个栈顶指针top1的初值为-1,第二
个栈顶指针top2的初值为n,则判断共享栈满的条件是()
A. top2-top1==1 B. topl-top2==1 C. top1==top2 D、都不对
26.【2009统考真题】设栈S和队列Q的初始状态均为空,元素abcdefg依次进入栈S。若
每个元素出栈后立即进入队列Q,且7个元素出队的顺序是bdcfeag,则栈S的容量至少是( )。
A. 1 B.2 C.3 D.4
27.【2010统考真题】若元素a, b, c, d, e, f依次进栈,允许进栈、退栈操作交替进行,但不
允许连续3次进行退栈操作,不可能得到的出栈序列是()。
A. dcebfa B. cbdaef C. bcaefd D. afedcb
28.【2011统考真题】元素a, b, c,d,e依次进入初始为空的栈中,若元素进栈后可停留、可出栈,
直到所有元素都出栈,则在所有可能的出栈序列中,以元素d开头的序列个数是( ).
A.3 B.4 C. 5 D.6
29.【2013统考真题】一个栈的入栈序列为1,2,3,…, n,出栈序列是P1,P2,P3,…, Pm。若P2,=3,
则P3可能取值的个数是()。
A. n-3 B. n-2 C. n-1 D.无法确定
30.【2020统考真题】对空栈S进行Push和 Pop操作,入栈序列为a, b,c, d, e,经过Push,
Push、Pop、Push、Pop、Push、Push、Pop操作后得到的出栈序列是()
A. b,a, c B. b, a, e C. b, c, a D. b,c,e
31.【2022统考真题】给定有限符号集s, in和out均为S中所有元素的任意排列。对于
初始为空的栈ST,下列叙述中,正确的是()。
A.若in是ST的入栈序列,则不能判断out是否为其可能的出栈序列
B.若out是ST的出栈序列,则不能判断in是否为其可能的入栈序列
C.若in是ST的入栈序列,out是对应in的出栈序列,则in与 out一定不同
D.若in是ST的入栈序列,out是对应in的出栈序列,则in与 out可能互为倒序