C語言 順序棧的實現

2021-09-28 18:15:29 字數 1170 閱讀 7989

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...