1.實驗目的
掌握棧的特點(先進後出)及其基本操作。如入棧、出棧等,棧的順序儲存結構和鏈式儲存結構,以便在實際問題中靈活運用。
2.實驗內容
建立乙個順序棧,實現資料的入棧和出棧運算,進而驗證棧的先進後出的特性。步驟如下:
建立入棧和出棧函式;
在主函式中輸入資料,以「\0」做結束標誌,呼叫入棧和出棧函式。
3.實驗工具
visual c++
4.實驗**
如下:
//authors:xiaobei
#include
#include
#include
typedef
struct
sqstack;
void
initstack
(sqstack &s)
;//s為結構體名,是首位址,用&來取址
void
push
(sqstack &s,
char e)
;void
pop(sqstack &s,
char
&e);
void
menu()
;int
main()
};break
;case2:
;break;}
case0:
exit(0
);}}
return0;
}//列印選單
void
menu()
//棧的初始化
void
initstack
(sqstack &s)
s.top = s.base;
s.stacksize =5;
printf
("記憶體分配成功!\n");
}//入棧
void
push
(sqstack &s,
char e)
}//出棧
void
pop(sqstack &s,
char
&e)}
5.總結
棧是「先進後出」。
順序棧在棧頂進行操做。
棧滿的標誌是top-base == size。
棧是有限制的順序表。注意取值與取址的適用情況。
順序棧的實現C語言
沒有什麼要講的。順序棧的結構體裡 頭指標,尾指標,還有棧的容量。構建棧的時候,就是尋找出一片大小合適的記憶體空間,並用結構體裡的尾指標指向這片空間。頭指標開始也是指向這片空間的。壓棧就是 先判斷空間是否足夠?不夠的話,繼續分配空間 夠的話給頭指標指向的結點賦值,並把頭結點向後移一位 也就是說頭指標始...
順序棧的實現(C語言)
順序棧vs2010 除錯 include include include define true 1 define false 0 define stack init size 100 define stackincreasement 10 struct seqstack 初始化棧 int init...
順序棧的實現(C語言)
順序棧vs2010 除錯 include include include define true 1 define false 0 define stack init size 100 define stackincreasement 10 struct seqstack 初始化棧 int init...