出棧特點:後進先出
最近忙著準備期末的考試,要知道大學生掛科是一件很可怕的事情。先將一點棧的知識記錄下來,一學期過了課本啥的也就丟了。
棧是一種只能在一端進行刪除插入或刪除操作的線性表。
棧中的資料元素的邏輯關係呈線性關係,所以棧可以和線性表一樣採用順序儲存結構進行儲存。採用順序儲存結構的棧稱為順序棧。
順序棧的四個要素:(初始設計s->top=-1)
1,棧空的條件:s->top=-1。
2.棧滿的條件:s-> top==maxsize-1(data陣列的最大下標)。
3.元素e的進棧操作:先將棧頂指標top增1,然後將元素e放在棧頂指標處。
4.出棧操作:先將棧頂指標top處的元素取出放在e中,然後將棧頂指標減1。
共享棧四個要素:
1.棧空條件:棧1空為top==-1:棧2空的條件為top2=maxsize。
2.棧滿條件:topl==top2-1。
3.元素x進棧操作:進棧1操作為top1++;data[top1]=x;進棧2操作為top2–;
data[top2]=x。
4.出棧x操作:出棧1操作為x=data[top1];top1–;出棧2操作為x=data[to
top2++。
乙個棧的入棧序列是a,b,c,d,e則棧的不可能的輸出序列是:()答案:ca edcba b decba c dceab d abcde
解析:後進先出,明確這個問題的矛盾根本所在:第一次出棧d,說明什麼?說明a,b,c一定早已入棧(入棧順序決定的)。那麼在出棧d以後,a,b,c的出棧順序一定是c,b,a,而不用理會中間穿插著出棧了d後面的字元(因為可以再入棧,再出棧嘛)。所以立即選中c,不用猶豫,理由簡單:d出棧了,abc一定已經入棧,那麼abc只能以cba的順序出棧,c不符合。
乙個棧的輸入序列為:1,2,3,4,則棧的不可能輸出的序列是( d )。第一次出棧4,說明1, 2,3,已經入棧了,在4出棧以後,1, 2,3,三個數字一定是先按照順序入棧了的,4出來後出來的順序只能是3, 2, 1。故d選項錯誤a. 1243 b. 2134 c. 1432 d. 4312 e. 3214
n個不同的元素通過乙個棧產生的出棧序列個數為c(2n,n)/(n+1)
資料結構導論 第三章棧)
棧和佇列可看作是特 殊的線性表,它們是 運算受限的線性表 定義 棧是只能在表的一端 表尾 進行 插入和刪除的線性表 特點 後進先出 棧中元素按a1,a2,a3,an的次序進棧,出棧的第乙個元素應 為棧頂元素。換句話說,棧的修改是按後進先出的原則進行的。因此,棧稱為後進先出線性表 lifo 棧的用途 ...
資料結構 第三章 棧與佇列
3.1 棧 3.1.1 抽象資料型別棧的定義 棧是限定僅在表尾進行插入或刪除操作的線性表。因此,對棧來說,表尾端有其特殊含義,稱為棧頂。相反地,表頭端稱為棧底。棧是後進先出 lifo 的線性表。基本操作 top 返回棧頂元素 pop 彈出棧頂元素 push a 將元素a壓入棧 empty 判斷是否為...
資料結構 第三章 棧與佇列
定義 限定僅在表尾進行插入和刪除操作的線性表。即後進先出的線性表 last in first out 表尾即棧頂top,表頭即棧低bottom。儲存方式 順序棧 鏈棧 順序棧 一組位址連續的儲存單元,一次存放自棧低到棧頂的資料元素。結構 兩個指標top,base,乙個int size描述棧的大小 空...