堆疊是一種基本的資料結構。堆疊具有兩種基本操作方式,push 和 pop。push乙個值會將其壓入棧頂,而 pop 則會將棧頂的值彈出。現在我們就來驗證一下堆疊的使用。
對於每組測試資料,第一行是乙個正整數 n,0
對於每組測試資料,根據其中的命令字元來處理堆疊;並對所有的'a』操作,輸出當時棧頂的值,每個佔據一行,如果當時棧為空,則輸出'e』。當每組測試資料完成後,輸出乙個空行。
5p 75oo
p 60a7
aop 73
p 49ao
p 30
本題是常規棧操作題,按照題目要求讀取字元,根據字元做出操作,有幾點需要注意的地方:60e49
1、每組資料第一行為int型,表示操作次數,當為0時要停止。
2、當用%c讀取每行的第乙個運算元時,前面要加空格如 scanf(「 %c」,&s);這樣可以過濾掉之前輸入流中的空格或者換行。如果使用%s讀資料就不用這麼麻煩,只要考慮字串第一位的值即可。
3、需要著重注意,當棧為空時不能進行退棧操作,會發生錯誤,每次進行退棧時要檢查棧是否為空,只有當不為空時才能退棧。
#include#includeusing namespace std;
stackbuf;//stack() 宣告乙個空棧
int main()
{ int n,i;
char s[10];
while(scanf("%d",&n)!=eof&&n)
{ while(!buf.empty())//empty 測試棧是否為空;
buf.pop();//pop 彈出棧中的元素,如果棧為空,結果未定義
int data;
for(i=0;i
堆疊的使用
題目描述 堆疊是一種基本的資料結構。堆疊具有兩種基本操作方式,push 和 pop。push乙個值會將其壓入棧頂,而 pop 則會將棧頂的值彈出。現在我們就來驗證一下堆疊的使用。輸入 對於每組測試資料,第一行是乙個正整數 n,0 輸出 對於每組測試資料,根據其中的命令字元來處理堆疊 並對所有的 a ...
堆疊的使用
一道acm的堆疊題,幾乎讓我複習了一晚上的資料結構,果斷ac了,上 題目描述 堆疊是一種基本的資料結構。堆疊具有兩種基本操作方式,push 和 pop。push乙個值會將其壓入棧頂,而 pop 則會將棧頂的值彈出。現在我們就來驗證一下堆疊的使用。輸入 對於每組測試資料,第一行是乙個正整數 n,0 輸...
堆疊的使用
一道acm的堆疊題,幾乎讓我複習了一晚上的資料結構,果斷ac了,上 題目描述 堆疊是一種基本的資料結構。堆疊具有兩種基本操作方式,push 和 pop。push乙個值會將其壓入棧頂,而 pop 則會將棧頂的值彈出。現在我們就來驗證一下堆疊的使用。輸入 對於每組測試資料,第一行是乙個正整數 n,0 輸...