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