資料結構題 設棧S的初始狀態為空,若元素a b c d e f依次進棧,得到的出棧序列是b d c f e a

時間 2021-10-14 20:20:51

1樓:匿名使用者

1樓答的挺對的,棧s的容量是3,既然知道了棧名s,要用到c/c++最好能用棧s的函式push、pop

s.push (a)

s.push (b)

s.pop()

s.push (c)

s.push (d)

s.pop()

s.pop()

s.push (e)

s.psuh (f)

s.pop()

s.pop()

s.pop()

b是第乙個出棧,那怎樣才能讓b第乙個出棧,而且壓入順序又是a,b,c,d,e,f呢?首先把a壓入棧中,然後在將b壓入棧中,這時彈出b,那b就是第乙個出棧的啦,這時棧中還有元素a,然後分析第二個出棧的,第二個出棧是d,那還是得先壓入c,然後再壓入d(這時候棧裡有幾個元素呢?是a,c,d對吧)然後d出棧,這時棧中還有a,c,然後分析第三個出棧的是c,然後彈出c(即c出棧),然後分析第四個出棧的是f,和上面一樣的分析啊,要想f第四個出棧,先壓入e,再壓入f,(這時棧中有3個元素,a,e,f)然後彈出f,(棧中還有兩個元素a,e),彈出e,彈出a。

記住彈出只能彈出棧頂元素。什麼時候壓入,什麼時候彈出都是自己決定的啊,但是根據上面的分析,要想入棧順序和出棧順序都正確,就必須這樣操作啊,呵呵,所以棧s的容量,就是你在這樣的分析的過程中棧s所含元素最多是多少啊?所以就是3

2樓:

則棧s的容量至少是3。

操作依次為:

push a

push b

poppush c

push d

poppop

push e

psuh f

poppoppop

設棧s的初始狀態為空,元素a,b,c,d,e,f依次入棧s,出棧的序列為b,d,f,e,c,a……

3樓:我愛五子棋

a入b入b出c入d入d出e入f入f出e出c出a出

1 2 1 2 3 2 3 4 3 2 1 0

最多時4,c

j**a的棧:設棧s的初始狀態為空,元素a,b,c,d,e,f,g依次入棧,寫出a,b,c,e,d,f,g進出棧次序?

4樓:匿名使用者

棧是先copy進後出,a在輸出bai的第乙個,那麼他肯定是在b進入du前出來的zhi,後面的bc也是同樣情況dao

所以前六個是進a,出a,進b,出b,進c,出c此時棧為空,後面輸出序列為e,d,均在f之前,同理說明ed在f入棧之前出來的

次序是 進d,進e,出e,出d

此時棧又空了,出棧為f,g,次序和輸入一樣,就是和a,b的一樣所以是進f,出f,進g,出g

這樣了全部過程就是進a,出a,進b,出b,進c,出c,進d,進e,出e,出d,進f,出f,進g,出g

5樓:匿名使用者

棧的機制是控制入棧出棧順序為後進先出,理解了這個就簡單了:

a,b,c,d,e,f,g依次入棧,得到a,b,c,e,d,f,g的出棧順序,那麼逐個分析就得到答案了

6樓:

棧是先進後出,a在第乙個,那肯定是先進a,然後再出a。

d在有之後,肯定是d先進,e再進,e出,d再出

按照這個規律就能寫出結果來了。

設棧s初始狀態空元素a,b,c,d,e,f,g依次入棧下出棧序列能出現是() a、a,e,d,c,b,f,g b、g,e,f,d,c,b,a

7樓:玉桖冰

答案c 因為棧是先進後出的。

所以:a進a出,b進c進d進,e進e出,接著只能是d出不可能是b出。

設棧s的初始狀態為空,元素a,b,c,d,e,f,g依次入棧,以下出棧序列不可能出現的有

8樓:啊是發的

c語言中 遞迴函式 的return 返回值問題 c語言中 遞迴函式 的return 返回值問題 c語言中 遞迴函式 的return 返回值問題

13. 設棧s 的初始狀態為空,元素a, b, c, d, e 依次入棧,以下出棧序列不可能出現的有()。

9樓:匿名使用者

那就選c了

因為:第乙個是a

則a入棧,a出棧

第二個是e

則b,c,d,e入棧,e出棧

第三個是c,但是c上面有d,要想讓c出棧,必須先讓d出棧,因此,c項不可能實現

你的選擇項怎麼沒有呢?

棧的主要性質就是先進後出,就像疊碗一樣,要把下面的碗拿掉,需先把上面的拿掉,因此對於你的題目,照著這樣的性質乙個乙個推算一下就知道了

10樓:

c其他的都可以(i是入棧 o是出棧)

a. a, b, c, e, d ai-ao-bi-bo-ci-co-di-do-ei-eo

b. b, c, a, e, d ai-bi-bo-ci-co-ao-di-ei-eo-do

c. a, e, c, b, d

d. d, c, e, b, a ai-bi-ci-di-do-co-ei-eo-bo-ao

設棧s和佇列q的初始狀態都為空,元素a,b,c,d,e和f依次通過棧s,乙個元素出棧後即進入q 30

11樓:張逸凡

a先入棧,然

後來b入棧,然後自b出棧,然後c,d依次bai入棧,然後dud,c依次出棧,然後e,f依次入zhi棧,最後棧中

dao從上往下還剩下f,e,a,它們也依次出棧。佇列即為bdcfea,也就是6個元素出佇列的序列是bdcfea。

12樓:

答案是3設棧長度為s,起始為0因為棧後進先出,佇列先進先出。又因為元素e1.。e6是順回序入棧,那麼分答

析過程如下:按照出棧過程分析,因為給定出棧順序:e2,e4,e3,e6,e5,e1,e2要進棧,所以e1必須進棧,進棧順序:

e1,e2,所以s為2下面e2出棧,列印出e2,剩餘結果為e4,e3,e6,e5,e1,因為e2出棧了,所以當前棧容量為2,但是只是用了1個,存放e1,下面繼續e3進棧,e4進棧,此時s為3,根據出棧結果,那麼e4出棧,e3出棧,此時棧容量為3但是只有e1在棧中,剩餘結果為e6,e5,e1,同理,e5進棧,e6進棧,此時棧被填滿,容量為3,後e6出棧,e5出棧,e1出棧,棧空,容量為3.所以s的容量至少為3.

c的資料結構問題(棧),資料結構有關棧的問題

亮 靜 define stack init size 100 c語言中定義乙個常量。stack init size 100 define stackincrement 10 c語言中定義乙個常量。stackincrement 10 include include 包含兩個標頭檔案。stdio.h和s...

如何判斷資料結構中棧為空的問題

因為先進行堆疊操作的時候要top 這個你懂得把。所以第一次操作的時候,直接top 就能對0號空間操作,這是堆疊操作的指令順序,用匯編來描述就是sp sp 1,sp register,看得懂就看,看不懂也沒事所以當top 1時,必定是空棧。而反過來,假如堆疊只有一個空間在使用 即top 0 現在把它彈...

關於資料結構的題

一樓個別選擇題答案有疑問 6.一個雜湊函式被認為是 好的 如果它滿足條件 a 雜湊地址分佈均勻 b 保證不產生衝突 c 所有雜湊地址在表長範圍內 d 滿足 b 和 c 本題的答案有疑問,因為如果不知道關鍵碼值的全部集合根本就不可能設計出perfect的hash函式,當然就不可能保證不產生衝突,因此正...