1-1
通過對堆疊s操作:push(s,1), push(s,2), pop(s), push(s,3), pop(s), pop(s)。輸出的序列為:123。 (2分)
f:應是231
1-2若乙個棧的輸入序列為1,2,3,…,n,輸出序列的第乙個元素是i,則第j個輸出元素是j−i−1。 (2分)
f:
[解析] 一串資料依次通過乙個棧,並不能保證出棧資料的次序總是倒置,可以產生多種出棧序列。一串資料通過乙個棧後的次序由每個資料之間的進棧、出棧操作序列決定,只有當所有資料「全部進棧後再全部出棧」才能使資料倒置。事實上,存在一種操作序列――「進棧、出棧、進棧、出棧……」――可以使資料通過棧後仍然保持次序不變。1-3題目中輸出序列的第乙個元素是i,則第j個輸出元素是不確定的。
若乙個棧的輸入序列為,則不可能得到這樣的出棧序列。 (2分)
t 2-4
給定乙個堆疊的入棧序列為,出棧序列為。如果p2=n,則存在多少種不同的出棧序列?(2分)12
n−1n
p2==n, 則n第二個出棧,第乙個出棧的可以是1,2,3,4.。。。n-12-5
設乙個堆疊的入棧順序是1、2、3、4、5。若第乙個出棧的元素是4,則最後乙個出棧的元素必定是: (2分)13
51或者5
2-6從棧頂指標為st
的鏈棧中刪除乙個結點且用x
儲存被刪結點的值,則執行: (2分)
2-7x= st->data;
x= st; st = st->next;
x= st->data; st = st->next;
st = st->next; x= st->data;
設棧s和佇列q的初始狀態均為空,元素a、b、c、d、e、f、g依次進入棧s。若每個元素出棧後立即進入佇列q,且7個元素出隊的順序是b、d、c、f、e、a、g,則棧s的容量至少是: (2分)12
342-8
假設有5個整數以1、2、3、4、5的順序被壓入堆疊,且出棧順序為3、5、4、2、1,那麼為了獲得這樣的輸出,堆疊大小至少為: (2分)23
452-9
若元素a、b、c、d、e、f依次進棧,允許進棧、退棧操作交替進行,但不允許連續三次進行退棧工作,則不可能得到的出棧序列是? (2分)
b c a e f d
c b d a e f
d c e b f a
a f e d c b
2-10
設乙個棧的輸入序列是1、2、3、4、5,則下列序列中,是棧的合法輸出序列的是? (2分)
3 2 1 5 4
5 1 2 3 4
4 5 1 3 2
4 3 1 2 5
2-11
有六個元素以6、5、4、3、2、1的順序進棧,問哪個不是合法的出棧序列? (2分)
2 3 4 1 5 6
3 4 6 5 2 1
5 4 3 6 1 2
4 5 3 1 2 6
2-12
若乙個棧的入棧序列為1、2、3、…、n,輸出序列的第乙個元素是i,則第j個輸出元素是: (2分)
i−j−1
i−jj−i−1
不確定2-13
若乙個棧的入棧序列為1、2、3、…、n,其輸出序列為p1、p2、p3、…、pn。若p1=n,則pi為: (2分)
in−i
n−i+1
不確定
2-14
將5個字母ooops
按此順序入棧,則有多少種不同的出棧順序可以仍然得到ooops
? (2分)13
56jcjcjc
jjjccc
jjccjc
jcjjcc
jjcjcc
2-15
棧的插入和刪除操作在( )進行。 (2分)
棧頂棧底
任意位置
指定位置
第三章(1) 順序棧
include include define stack size 100 define stackadd 10 typedef int selemtype typedef struct sqstack void initstack sqstack s s top s base look caref...
第三章作業
1.完成課本每乙個程式設計題。要求先畫出流程演算法圖或n s圖,然後程式設計實現,有可能的話使用兩種以上方法 2.程式設計求 百錢百雞 問題。雞翁一值錢五,雞母 一值錢三,雞雛三值錢一。百錢買百雞,問雞翁 雞母 雞雛各幾何?3.程式設計輸入乙個整數,計算它是幾位數字,分別輸出每一位數字,並輸出各個數...
第三章作業
第三章作業 習題5,求e的近似值 求自然對數e的近似值 includeusing namespace std int n return a int main cout 習題6 求圓周率 求圓周率的近似值 include includeusing namespace std int main cout...