c语言第四版课后答案第三章3.4,算法与数据结构C语言版课后习题答案(机械工业出版社)第3,4章 习题参考答案...
第3章
棧和隊列
一、基礎知識題
3.1 有五個數(shù)依次進棧:1,2,3,4,5。在各種出棧的序列中,以3,4先出的序列有哪幾個。(3在4之前出棧)。
【解答】34215 ,34251, 34521
3.2 鐵路進行列車調(diào)度時,常把站臺設計成棧式結(jié)構(gòu),若進站的六輛列車順序為:1,2,3,4,5,6, 那么是否能夠得到435612, 325641, 154623和135426的出站序列,如果不能,說明為什么不能; 如果能, 說明如何得到(即寫出"進棧"或"出棧"的序列)。
【解答】輸入序列為123456,不能得出435612和154623。不能得到435612的理由是,輸出序列最后兩元素是12,前面4個元素(4356)得到后,棧中元素剩12,且2在棧頂,不可能讓棧底元素1在棧頂元素2之前出棧。不能得到154623的理由類似,當棧中元素只剩23,且3在棧頂,2不可能先于3出棧。 得到325641的過程如下:1 2 3順序入棧,32出棧,得到部分輸出序列32;然后45入棧,5出棧,部分輸出序列變?yōu)?25;接著6入棧并退棧,部分輸出序列變?yōu)?256;最后41退棧,得最終結(jié)果325641。
得到135426的過程如下:1入棧并出棧,得到部分輸出序列1;然后2和3入棧,3出棧,部分輸出序列變?yōu)?3;接著4和5入棧,5,4和2依次出棧,部分輸出序列變?yōu)?3542;最后6入棧并退棧,得最終結(jié)果135426。
3.3 若用一個大小為6的數(shù)組來實現(xiàn)循環(huán)隊列,且當前rear和front的值分別為0和3,當從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為多少?
【解答】2和 4
3.4 設棧S和隊列Q的初始狀態(tài)為空,元素e1,e2,e3,e4,e5和e6依次通過棧S,一個元素出棧后即進隊列Q,若6個元素出隊的序列是e3,e5,e4,e6,e2,e1,則棧S的容量至少應該是多少?
【解答】 4
3.5 循環(huán)隊列的優(yōu)點是什么,如何判斷“空”和“滿”。
【解答】循環(huán)隊列解決了常規(guī)用0--m-1的數(shù)組表示隊列時出現(xiàn)的“假溢出”(即隊列未滿但不能入隊)。在循環(huán)隊列中我們?nèi)杂藐狀^指針等于隊尾指針表示隊空,而用犧牲一個單元的辦法表示隊滿,即當隊尾指針加1(求模)等于隊頭指針時,表示隊列滿。也有通過設標記以及用一個隊頭或隊尾指針加上隊中元素個數(shù)來區(qū)分隊列的“空”和“滿”的。
3.6 設長度為n的鏈隊列用單循環(huán)鏈表表示,若只設頭指針,則入隊和出隊的時間如何?若只設尾指針呢?
【解答】若只設頭指針,則入隊的時間為O(n),出隊的時間為O(1)。若只設尾指針,則入隊和出隊的時間均為O(1)。
3.7 指出下面程序段的功能是什么?
(1) void demo1(SeqStack S)
{int i,arr[64],n=0;
while(!StackEmpty(S)) arr[n++]=Pop(S);
總結(jié)
以上是生活随笔為你收集整理的c语言第四版课后答案第三章3.4,算法与数据结构C语言版课后习题答案(机械工业出版社)第3,4章 习题参考答案...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国人民银行活期存款利率2022,0.3
- 下一篇: c语言编程用进退法求搜索区间代码,用c对