3 3 鍵入整數序列,通過判斷鍵入的值入棧或出棧

2021-10-23 12:44:04 字數 682 閱讀 2350

題目:設從鍵盤輸入一整數的序列:a1, a2, a3,…,an,試編寫演算法實現:用棧結構儲存輸入的整數,當ai≠-1時,將ai進棧;當ai=-1時,輸出棧頂整數並出棧。演算法應對異常情況(入棧滿等)給出相應的資訊。

分析:進棧、出棧的操作比較多,而且題目中提到異常「入棧滿」,所以選擇順序棧。

思路:初始化棧,迴圈鍵入整數序列,並判斷鍵入的數值是否為-1。如果不是-1,判斷棧是否已滿,若滿輸出「棧滿」並退出,否則此數入棧;如果是-1,判斷棧是否為空,若空輸出「棧空」並退出,否則輸出棧頂元素並出棧。

演算法描述:

#difine maxsize 100

typedef

int elemtype;

//因為此題中說明了序列中都是整數,用elemtype表示int,便於修改

typedef

struct

sqstack;

status initstack

(sqstack &s)

status inouts

(sqstack &s)

*s.top++

=e;//棧未滿,將e的值插到棧頂,棧頂指標上移

}else

printf

("%d",*

--s.top)

;//輸出棧頂元素並出棧}}

}

判斷整數序列是否是二叉查詢樹的後序遍歷

這是一道面試題,解題的 如下 我這裡把有重複節點的序列排除了,這裡的二叉樹不允許有相同值得節點 bool judgelistisbstreepostorder int iarray,int nleft,int nright int nmidvalue iarray nright int nsuble...

判斷整數序列是不是二元查詢樹的後序遍歷結果

二叉查詢樹 binary search tree 或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉排序樹。post order 先訪問左節點,再訪問右節點...

判斷整數序列是不是二元查詢樹的後序遍歷結果

第9題 判斷整數序列是不是二元查詢樹的後序遍歷結果 題目 輸入乙個整數陣列,判斷該陣列是不是某二元查詢樹的後序遍歷的結果。如果是返回true,否則返回false。例如輸入5 7 6 9 11 10 8,由於這一整數序列是如下樹的後序遍歷結果 8 6 10 5 7 9 11 因此返回true。如果輸入...