1、堆栈为空(顺序、链式)和满(顺序存储)的判定条件。
1)对于单链表:
(1)带头节点链表判空条件:
head->next=NULL;
(2)不带头节点链表判空条件
head=NULL;
(3)对于循环链表判空条件
head->next=head;
(4)对于双链表判空条件
head->next=head->prior=head
2)
(1)顺序栈判空条件
s.top==s.base;
(2)链式栈判空条件
s.next=s.bottom;
(3)顺序栈满判定条件
s.top-s.base==s.stacksize;
2、判断下列说法是否正确。
(1)空栈就是所有元素都为0的栈。
(2) 不管堆栈采用何种存储结构,只要不为空,就可以任意的删除数据元素。
(3) 在 c语言中设顺序栈的长度为 MAXLEN ,则 top = MAXLEN 时表示栈满。
参考答案:(1)× (2)× (3) ×
3、设用一维数组元素 a[1]-a[n]存储一个栈,令 a[n]为栈底,用整型变量 t 指示当前栈顶位置, a[t]为栈顶元素。当从栈中弹出一个元素时,变量 t 的变化为( )。
A.t=t + 1 B.t=t-1 C. t 不变 D .t=n
参考答案: A
4、有 6 个元素按 6 、 5 、 4 、 3 、 2 、 1 的顺序进栈,进栈过程中可以出栈,则以下可能的出栈序列是( )。
A . 1 、 4 、 3 、 5 、 2 、 6 B . 6 、 5 、 4 、 3 、 2 、 l
C . 3 、 l 、 4 、 2 、 6 、 5 D . 3 、 6 、 5 、 4 、 2 、 l
参考答案: B
5、以下叙述中错误的是( )。
A.栈是限制存取操作只能在一端进行的线性表
B.消除递归不是必须使用栈
C.对同一组输入序列进行合法的入、出栈操作,得到的输出序列一定相同
D.实现递归必定使用工作栈
参考答案: C
6、以下不属于栈的基本运算的是( )。
A.删除栈顶元素 B.删除栈底元素 C.判断栈是否为空 D.将栈置为空栈
参考答案:B
7、若以链表作为栈的存储结构,则退栈操作时( )。
A.必须判别栈是否满 B.必须判别栈元素的类型
C.必须判别栈是否空 D.不用作任何判别
参考答案: C
8、在链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为___ 。
A.front= fornt->next B.rear= rear->next
C.rear=front->next D.front=rear->next
参考答案: A
来源:我是码农,转载请保留出处和链接!
本文链接:http://www.54manong.com/?id=345