第五周專案1 建立順序棧演算法庫

2021-07-23 07:11:53 字數 3007 閱讀 4090

1.	問題描述及**:  

[cpp] view plain copy

1. /*

2. *煙台大學計控學院

3. *作 者:朱建豪

4. *完成日期:2023年9月29日

5. *問題描述:定義順序棧儲存結構,實現其基本運算,並完成測試。

6.   要求:

7.   1、標頭檔案sqstack.h中定義資料結構並宣告用於完成基本運算的函式。對應基本運算的函式包括:

8.

9. void initstack(sqstack *&s); //初始化棧

10. void destroystack(sqstack *&s); //銷毀棧

11. bool stackempty(sqstack *s); //棧是否為空

12. int stacklength(sqstack *s); //返回棧中元素個數——棧長度

13. bool push(sqstack *&s,elemtype e); //入棧

14. bool pop(sqstack *&s,elemtype &e); //出棧

15. bool gettop(sqstack *s,elemtype &e); //取棧頂資料元素

16. void dispstack(sqstack *s); //輸出棧1

17. 2、在sqstack.cpp中實現這些函式

18. 3、在main函式中完成測試,包括如下內容:

19. (1)初始化棧s

20. (2)判斷s棧是否為空

21. (3)依次進棧元素a,b,c,d,e

22. (4)判斷s棧是否為空

23. (5)輸出棧長度

24. (6)輸出從棧頂到棧底元素

25. (7)出棧,並輸出出棧序列

26. (8)判斷s棧是否為空

27. (9)釋放棧

28. */

(1)sqstack.h

[cpp] view plain copy

1. #ifndef sqstack_h_included

2. #define sqstack_h_included

3.

4. #define maxsize 100

5. typedef char elemtype;

6. typedef struct

7. sqstack; //順序棧型別定義

11.

12. void initstack(sqstack *&s); //初始化棧

13. void destroystack(sqstack *&s); //銷毀棧

14. bool stackempty(sqstack *s); //棧是否為空

15. int stacklength(sqstack *s); //返回棧中元素個數——棧長度

16. bool push(sqstack *&s,elemtype e); //入棧

17. bool pop(sqstack *&s,elemtype &e); //出棧

18. bool gettop(sqstack *s,elemtype &e); //取棧頂資料元素

19. void dispstack(sqstack *s); //輸出棧

20.

21.

22.

23. #endif // sqstack_h_included

(2)sqstack.cpp

[cpp] view plain copy

1. #include"sqstack.h"

2. #include3. #include4. void initstack(sqstack *&s)

5.

9. void destroystack(sqstack *&s)

10.

13. int stacklength(sqstack *s) //返回棧中元素個數——棧長度

14.

17. bool stackempty(sqstack *s)

18.

21. bool push(sqstack *&s,elemtype e)

22.

29. bool pop(sqstack *&s,elemtype &e)

30.

37. bool gettop(sqstack *s,elemtype &e)

38.

44.

45. void dispstack(sqstack *s) //輸出棧

46.

(3)main.cpp

[cpp] view plain copy

1. #include 2. #include "sqstack.h"

3.

4. int main()

5.

26. printf("\n");

27. printf("(8)棧為%s\n",(stackempty(s)?"空":"非空"));

28. printf("(9)釋放棧\n");

29. destroystack(s);

30. return 0;

31.

32. }

執行結果:

熟悉棧的基本運算

學習心得:

終於會用coodblocks程式設計序了 在處理編譯器的問題的同時也一遍一遍加深了對演算法的認識

第五周 專案 1 建立順序棧演算法庫

all right reserved.檔名稱 test.cpp 完成日期 2016年9月23日 版本號 v1.2.5 問題描述 定義順序棧儲存結構,實現其基本運算。程式輸入 無。程式輸出 棧的基本運算。ifndef sqstack h included define sqstack h includ...

第五周 專案1 建立順序棧演算法庫

檔名稱 1 sqstack.h 2 sqstack.cpp 作 者 林穎 完成日期 2016年9月25日 問題描述 定義順序棧儲存結構,實現其基本運算,並完成測試。輸入描述 無。程式輸出 測試內容。sqstack.h部分 define maxsize 100 typedef char elemtyp...

第五周專案1 建立順序棧演算法庫

問題 檔名稱 專案1.cpp 作 者 陳晨 完成日期 2016年9月25日 版 本 號 v1.0 問題描述 定義順序棧儲存結構,實現其基本運算,並完成測試。輸入描述 無 程式輸出 測試資料 標頭檔案sqstack.h include include define maxsize 100 typede...