n元素順序入棧,則可能的出棧序列有多少

2021-03-22 05:48:59 字數 2953 閱讀 8850

1樓:悽清的小白鼠

我來補充吧,其實進棧出棧是可以同時進行的,並不一定要全部進去再出來,可以先進一部分再出來,所以關鍵是從那個開始先出

1.第一個先出的為d 則必須為dcba

2.第一個出來的是c則可為 cdba (abc依次進然後c出來d進去再出來然後ba出來) 也可為cbad (cb出來d進 、出,a出)也可為cbda 就是c之前的ab必須先b再a 因為是a先進而b是後進(注意是沒有出去)

3、同理第一個為b時可以為 bcda、bdca、bacd、badc、bcad(bdac是不行的因為要d排第二必須c進去而沒有出來也就是說c必須先a而出)

2樓:憑實陀雪

n個資料依次入棧,出棧順序種數的遞推公式如下:

f(n)=∑(f(n-1-k)*fk);其中k從0到n-1已知f0=1,

f1=f0*f0=1

f2=f1*f0+f0*f1=2

f3=f2*f0+f1*f1+f0*f2=5……證明的話,對於n個資料,我只看第一個資料的出入棧順序:

第一個資料入棧到出棧之間可以包含0,1,2…n-1個資料的出入棧,相應的,第一個資料出棧之後,還有n-1,n-2…2,1,0個資料需要出入棧

根據組合數學裡面的乘法原理,需要把第一個資料出棧前後的種數相乘根據加法原理,需要把第一個資料出入棧的n種方式全加起來於是就得到了那個遞推公式,不過,要找出一個直接計算fn的公式似乎不太好辦。

在arm規定的堆疊中,多暫存器入棧的順序是什麼?

3樓:du知道君

設堆疊指標r13初始值為#0x50,則: stm指令執行完後堆疊指標r13=( 0x60 )。請在圖中標出stm指令執行完後堆疊段的資料存放情況。

ldm指令執行完後堆疊指標r13=( 0x50 ),各暫存器的值分別為: (r1)=( 0x11 ) ,(r2)=( 0x22 ) ,(r3)=( 0x33 ) ,(r4)=( 0x44 ) ,(r5)=( 0x55 )

為什麼說棧底元素總是最先被插入的元素,從而也是最後才能被刪除,不是說棧底不允許被插入刪除嗎

4樓:瘋狂夏風翼

你這句話沒有理解嗎?棧底元素總是最先被插入的元素,從而也是最後才能被刪除,這句話總該明白了?這時的棧底元素已經成為了棧頂元素,當然可以刪除了啊~~~

5樓:匿名使用者

棧底元素總是最先被插入的元素,從而也是最後才能被刪除

不是最後的那一個時不允許被插入刪除

6樓:聽不清啊

棧的插入和刪除操作,都是在棧頂進行的。

只有空棧時,才能在棧底插入元素;

只有在棧中僅剩一個元素時,才能在棧底刪除元素。

7樓:騰訊電腦管家

彈出一個棧頂元素,那麼棧頂高度自然就會減1。

先用一個變數儲存彈出的元素stack[topofstack],然後將棧頂高度topofstack減1.

8樓:dyx瀟酈平凡

因為棧只能在棧頂插入和刪除,當我們在棧頂連續執行插入時,棧底元素就會是我們剛剛第一個插入的元素(最早被插入的元素);當我們在棧頂連續不斷執行刪除時,棧底元素就會是我們最後刪除的元素(最後被刪除的元素)。

?不知道對不對

9樓:

在資料結構中,關於對堆疊(stack)的操作,一直都是這樣的:首先設定一個空棧、並設定一個棧頂指標,然後就可以根據程式的需要往裡面壓入一個(或者是多個)元素(即:壓棧操作),然後棧頂指標加 1,而出棧操作則相反:

最後入棧的元素首先彈出堆疊,棧頂指標減 1。

只要在對堆疊的操作進行越界的判斷(下溢、上溢的判斷是必須的),那麼插入、刪除就可以根據自己程式設計的需要進行控制。

10樓:匿名使用者

棧的限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。話中強調的是插入刪除時的先後問題。

棧底不允許被插入刪除這個說法不準確,棧按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,與其說棧底不如說不允許在元素序列的中間插入和刪除元素,明白要點在**就好

11樓:匿名使用者

第一個「插入」的意思其實是放入,第二個「插入」是插隊的意思。堆疊不能插隊,只能逐個放入元素和取出元素,按你的表述,放入(push)=第一個「插入」,取出(pop)=「被刪除」。你要真正理解堆疊就要表述準確,很好理解的。

存入堆疊只有push操作,讀取堆疊資料可以用指標,程式設計裡很多使用pop操作時也會直接反饋出最後一個元素並且從堆疊中刪除它。

12樓:心妙

這裡的棧底元素和棧底不是一個概念。不用太糾結哈。

棧底元素指的是最接近棧底的元素,元素入棧過程是「堆疊指標先+1而後才有入棧」,因此不使用堆疊指標的初值,就像有一個底把元素們兜住了。

13樓:小小雨泡

可以去看看後進先出原則,具體還是要去查詢一下。

14樓:靳葉運碧萱

因為棧具有後進先出的性質,所以棧底的元素最先進棧。當元素依次進棧後,要刪除元素只有從棧頂開始,所以棧底元素最後被刪除。。。

15樓:匿名使用者

沒有不能刪除棧底這種說法,當棧的元素只剩一個的時候,棧頂也是棧底,出棧刪的是棧頂同時也是棧底,棧為空的時候插入的位置就是棧底

arm linux kernel裡面為什麼要在核心棧的棧底保留8個byte

16樓:兄弟連教育

你這個**明顯是要編譯核心模組的,而核心模組是執行在核心空間的,所以它使用的 stack 是核心中的棧,即8k (或4k)大校

出棧、入棧時item的含義有什麼不同

用一個棧實現另一個棧的排序 25

進棧順序1,2,3,4,出棧順序多少種

4312嗎?肯定不能4 3 1 2了.假設第一個是 4 出棧,那麼就說明前面 進棧順序只能是 1,2,3 那麼出棧順序使能是 4,3,2,1了.6423 n 個元素順序入棧,則可能的出棧序列有多少 我來補充吧,其實進棧出棧是可以同時進行的,並不一定要全部進去再出來,可以先進一部分再出來,所以關鍵是從...

設計棧類實現初始化棧入棧出棧判棧空

include using namespace std typedef char elemtype typedef class linknode delete p int listack stacklength listack s return i int listack stackempty li...

關於元素含量,人體中元素含量順序

這個自然界指的是地球還是宇宙?地球 o 原因參考 自然界中的化學元素 1 地殼中最多的元素 o 2 地殼中最多的金屬元素 al 地殼中含量前四位的元素依次是氧 矽 鋁 鐵。空氣中含量最多的元素是氮元素。3 海水 人體中最多的元素 o 宇宙 h 在宇宙誕生時首先產生的就是h,佔了99.999 直到今天...