1. 程式人生 > >出棧入棧問題

出棧入棧問題

基本概念:多用於計算機,與其相對應的是進棧;進棧、出棧多是按照一定順序的例如:有一個數列(23,45,3,7,3,945)我們先對其進行進棧操作,則進棧順序為:23,45,3,7,3,945(放盒子)我們在對其進行出棧操作,則出棧順序為:945,3,7,3,45,23(盒子中拿)為了方便,我們通常做到:出棧後不再進棧。進棧出棧就像一個盒子,先一個個放入盒內,而拿出的時候只有先從上面拿,才能再拿下面。棧(stack)又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。-------------------

示例:

1進棧,1出棧,2進棧,2出棧,3進棧,3出棧,所以是123
1進棧,2進棧,2出棧,1出棧,3進棧,3出棧,所以是213
1進棧,2進棧,2出棧,3進棧,3出棧,1出棧,所以是231
1進棧,2進棧,3進棧,3出棧,2出棧,1出棧,所以是321
輸入序列是123的輸出序列就這4中情況;
輸入序列是12345的輸出序列是12345  12435  12453  12543  21345  21435  21543  23451  23541   24531  25431  32451  32541  34521  35421   43215  43251  43521   45321  54321;
為什麼出棧順序沒有31...   42...? 當3先出的時候,1和2已經在棧裡了結合已知的進棧順序,1不可能比2先出來

一個棧的輸入序列是12345,則下列序列中不可能是棧的輸出序列的是( )

A.23415 
B.54132
C.23145 

D.15432

B 不可能 5第一個只能為54321