出棧入棧問題
阿新 • • 發佈:2019-01-10
基本概念:多用於計算機,與其相對應的是進棧;進棧、出棧多是按照一定順序的例如:有一個數列(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