進棧出棧規則

2021-09-12 02:59:25 字數 557 閱讀 4969

先弄個例子:

已知元素的入棧順序為abcde,則下列哪種出棧順序是不可能的(出棧和入棧操作可交叉進行)

a.edcba

b.cabde

c.dcbae

d.bcdea

先進後出,後進先出

在原序列中相對位置比它小的,必須是逆序;

在原序列中相對位置比它大的,順序沒有要求;

以上兩點可以間插進行。

a選項正確: 比e小的有 abcd,根據後進先出,則edcba ,

b選項錯誤: 比c小的是ab,必須逆序,則結果cabxx,肯定是錯誤的。

c選項正確:比d小的abc,必須逆序,則結果是dcba補上a

d選項正確:比b小的是a,逆序等於還是a,

然後對比第二位,比c小的ab,因為b已經排了,則還是a

然後對比第三位,比d小的abc,因為bc已經排了,則還是a

然後對比第四位,比e小的abcd,因為bcd已經排了,則還是a

進棧與出棧

問題描述 有四個元素abcd依次入初始為空的棧中,入棧之後可停留,可出棧。最後所有元素都出棧,請分析並寫出所有可能的分別以a,b,c,d開頭的出棧序列。首先分析以a開頭的出棧序列。序列前兩位無非3種 ab,ac,ad。再分別分析這三種開頭的序列分別對應著幾種可能序列。ab顯然有abcd和abdc兩種...

棧的基本操作(進棧,出棧)

include define max stack size 100 define error 0 define ok 1 typedef int elemtype typedef int status typedef struct sqstack sqstack 棧的初始化 sqstack init...

棧 進棧,出棧指標修改的順序問題

策略 設計乙個順序棧,附設的top指標有兩種策略 借助一篇文章深入分析二者的異同。top指向棧頂 首先令top指向當前棧頂元素,這樣進來乙個新的元素時,新元素不能佔據當前top指向的位置,需要把top指標挪一挪,一般是top 但不排除題目中設計的是top 不管怎樣,都是把top指標往棧外拓展乙個空位...