设一数列的输入顺序为123456,若采用堆栈结构,并以A和D分别表示入栈和出栈操作,试问通过入出栈操作的合法序列。 (1)能否得到输出顺序为325641的序列。 (2)能否得到输出顺序为154623的序列。

admin2018-10-11  24

问题 设一数列的输入顺序为123456,若采用堆栈结构,并以A和D分别表示入栈和出栈操作,试问通过入出栈操作的合法序列。
    (1)能否得到输出顺序为325641的序列。
    (2)能否得到输出顺序为154623的序列。

选项

答案(1)能得到325641。在123依次进栈后,3和2出栈,得部分输出序列32;然后4,5入栈,5出栈,得部分出栈序列325;6入栈并出栈,得部分输出序列3256;最后退栈,直到栈空。得输出序列325641。其操作序列为AAADDAADADDD。 (2)不能得到输出顺序为154623的序列。部分合法操作序列为ADAAAADDAD,得到部分输出序列1546后,栈中元素为23,3在栈顶,故不可能2先出栈,得不到输出序列154623。

解析
转载请注明原文地址:https://kaotiyun.com/show/mKal777K
0

最新回复(0)