下列关于栈的说法中,正确的是( )。 Ⅰ.若进栈顺序为a、b、c,则通过出栈操作可能得到5个a、b、c的不同排列 Ⅱ.链式栈的栈顶指针一定指向栈的链尾 Ⅲ.两个栈共享一个向量空间的好处是减少了存取时间

admin2017-04-28  27

问题 下列关于栈的说法中,正确的是(    )。
Ⅰ.若进栈顺序为a、b、c,则通过出栈操作可能得到5个a、b、c的不同排列
Ⅱ.链式栈的栈顶指针一定指向栈的链尾
Ⅲ.两个栈共享一个向量空间的好处是减少了存取时间

选项 A、仅Ⅰ
B、仅Ⅰ、Ⅱ
C、仅Ⅱ
D、仅Ⅱ、Ⅲ

答案A

解析 Ⅰ:该选项旨在让考生知道一个公式。对于n个不同元素进栈,出栈序列的个数为可以马上得出,当n=3时,出栈序列个数为故Ⅰ正确。
Ⅱ:链式栈一般采用单链表,栈顶指针即为链头指针。进栈和出栈均在链头进行,每次都要修改栈顶指针,链空即栈空( top==NULL),故Ⅱ错误。
m:由于栈中数据的操作只有入栈和出栈,且时间复杂度均为O(1),因此并没有减少存取时间,故Ⅲ错误。
补充知识点:共享栈
解析:两个栈共享一个数组A[O…MaxSize—1]的空间,从而构成共享栈。数组A的两端是固定的,而栈底也是固定的,为此将下标为0的一端作为栈l的栈底,其栈顶指针为topl,将下标为MaxSize—1的一端作为栈2的栈底,其栈顶指针为top2,如图7—4所示。

栈1的四要素如下:
①栈空条件:top1==—1。
②栈满条件:top1==top2—1。
③元素x进栈:top1++;将元素x插入A[top1]处。
④出栈元素:弹出A[topl]元素;topl--。
栈2的四要素如下:
①栈空条件:top2==MaxSize。
②栈满条件:top2==top 1+1。
③元素x进栈:top2--;将元素x插入A[top2]处。
④出栈元素:弹出A[top2]元素;top2++。
注:以上都默认指针指向当前元素的下一个位置。
转载请注明原文地址:https://kaotiyun.com/show/XXRi777K
0

最新回复(0)