赞
踩
1、栈结构通常采用的两种存储结构是( )。
A、 顺序存储结构和链表存储结构。
B、 散列方式和索引方式。
C、 链表存储结构和数组。
D、 线性链表结构和非线性存储结构。
正确答案: A这里就不解释了哈哈哈大家都懂
2、在栈操作中,输入序列为(A,B,C,D),不可能得到的输出的数列是( )。
A、 (A,B,C,D)
B、 (D,C,B,A)
C、 (A,C,D,B)
D、 (C,A,B,D)
正确答案: D每个都去尝试一下,你就会发现D是不可能的那个
3、设栈ST用顺序存储结构表示,则栈ST为空的条件是( )。
A、 ST.top-ST.base<0
B、 ST.top-ST.base==0
C、 ST.top-ST.base<n
D、 ST.top-ST.base==n
正确答案: B
4、向一个栈顶指针为HS的链栈中插入一个s结点时,则执行( )。
A、 HS->next=s;
B、 s->next=HS->next; HS->next=s;
C、 s->next=HS;HS=s;
D、 s->next=HS;HS=HS->next;
正确答案: C
5、从一个栈顶指针为HS的链栈中删除一个结点,用x保存被删结点的值,则执行( )。
A、 x=HS;HS=HS->next;
B、 HS=HS->next; x=HS->data;
C、 x=HS->data;HS=HS->next;
D、 s->next=HS;HS=HS->next;
正确答案: C先把这个节点的值用x存起来,再把指针后面移动,就相当于删除了栈顶的那个元素了
6、表达式a*(b+c)-d的后缀表达式是( )。
A、 abcdd+-
B、 abc+*d-
C、 abc*+d-
D、 -+*abcd
正确答案: B
7、中缀表达式A-(B+C/D)*E的后缀形式是( )
A、 AB-C+D/E*
B、 ABC+D/E*
C、 ABCD/E*+-
D、 ABCD/+E*-
正确答案: D
解析:无8、一个队列的入列序列是1,2,3,4,则队列的输出序列是( )。
A、 4,3,2,1
B、 1,2,3,4
C、 1,4,3,2
D、 3,2,4,1
正确答案: B
解析:无9、循环队列SQ采用数组空间SQ.base[0,n-1]存放其元素值,已知其头尾指针分别是front和rear,则判定此循环队列Q为空的条件是( )。
A、 Q.ear-Q.front==n
B、 Q.rear-Q.front-1==n
C、 Q.front==Q.rear
D、 Q.front==Q.rear+1
正确答案: C
解析:无10、循环队列SQ采用数组空间SQ.base[0,n-1]存放其元素值,已知其头尾指针分别是front和rear,则判定此循环队列Q为满队列的条件是( )。
A、 Q.front==Q.rear
B、 Q.front!=Q.rear
C、 Q.front==(Q.rear+1)%n
D、 Q.front!=(Q.rear+1)%n
正确答案: C
解析:无11、若在一个大小为6的数组上实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为( )。
A、 1和5
B、 2和4
C、 4和2
D、 5和1
正确答案: B
解析:无12、用单链表表示的链式队列的队头在链表的( )位置。
A、 链头
B、 链尾
C、 链中
正确答案: A
解析:无13、判定一个链队列Q(最多元素个数为n)为空的条件是( )。
A、 Q.front==Q.rear
B、 Q.front!=Q.rear
C、 Q.front==(Q.rear+1)%n
D、 Q.front!=(Q.rear+1)%n
正确答案: A
解析:无14、在链队列Q中,插入s所指结点需顺序执行的指令是( )。
A、 Q.front->next=s;Q.front=s;
B、 Q.rear->next=s;Q.rear=s;
C、 s->next=Q.rear;Q.rear=s;
D、 s->next=Q.front;Q.front=s;
正确答案: B
解析:无15、在一个链队列Q中,删除一个结点的需要执行的指令是( )。
A、 Q.rear=Q.front->next;
B、 Q.rear->next=Q.rear->next->next;
C、 Q.front->next=Q.front->next->next;
D、 Q.front=Q.rear->next;
正确答案: C
解析:无16、用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时( )。
A、 仅修改队头指针
B、 仅修改队尾指针
C、 队头、队尾指针都要修改
D、 队头、对尾指针都可能要修改//万一里面只有一个队头那个结点了,就要修改队尾指针
正确答案: D
解析:无17、栈和队列的共同点( )。
A、 都是先进后出
B、 都是先进先出
C、 只允许在端点处插入和删除元素
D、 没有共同点
正确答案: C
解析:无18、消除递归( )需要使用栈。
A、 一定
B、 不一定
正确答案: B
解析:无
1、栈的特点是____,队列的特点是____。
正确答案:
第1空:先进后出
第2空:先进先出
2、线性表、栈和队列都是____结构,线性表可以在线性表的____位置插入和删除元素;对于栈只能在____插入和删除元素;对于队列只能在____插入元素和____删除元素。
正确答案:
第1空:线性
第2空:任何
第3空:栈顶
第4空:队尾
第5空:队首
3、有程序如下,则此程序的输出结果(其中栈的元素类型SelemType为char)是____。
void main()
{ stack s;
char x,y;
initstack (s);
x=’c’; y=’k’;
push(s,x);push(s,’a’);push(s,y);
pop(s,y);push(s,’t’);push(s,x);
pop(s,x);push(s,’s’);
while(!stackempty(s)) {pop(s,y);printf(y);}
printf(y);
}
正确答案:
第1空:stack
4、在栈顶指针为HS的链栈中,判定栈空的条件是____。
正确答案:
第1空:HS==NULL
5、向栈中压入元素的操作是先____,后____。
正确答案:
第1空: 移动栈顶指针
第2空: 存入元素
6、对栈进行退栈时的操作是先____,后____。
正确答案:
第1空: 取出元素
第2空: 移动栈顶指针
7、用循环链表表示的队列长度为n ,若只设头指针,则出队和入队的时间复杂度分别是____和____;若只设尾指针,则出队和入队的时间复杂度分别是:____和____。
正确答案:
第1空: 1和n; 1和18、从循环队列中,删除一个元素时,其操作是____。
正确答案:
第1空:先取出元素,后移动队尾指针9、在一个循环队列中,队首指针指向队首元素的____。
正确答案:
第1空:前一个位置
10、在具有n个单元的循环队列中,队满时共有____个元素。
正确答案:
第1空:n-111、在HQ的链队列中,判定只有一个结点的条件是____。
正确答案:
第1空:HQ.front==HQ.rear12、设栈S和队列Q的初始状态为空,元素a,b,c,d,e,f依次通过栈S,一个元素出栈后即进入队列Q。若这6个元素出队列的顺序是b,d,c,f,e,a则栈S的容量至少应该是____。
正确答案:
第1空:313、有如下递归函数:
int dunno(int m)
{
int value;
if(m==0) value=3;
else value=dunno(m-1)+5;
return(value);
}
执行语句printf(“%d\n”,dunno(3));的结果是____。
正确答案: 第1空:1814、设a是含有N个分量的整数数组,写出求n个整数之和的递归定义____,写出求n个整数之积的递归定义____。
正确答案:
第1空:
第2空:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。