第五周專案2 建立鏈棧演算法庫

2021-07-23 07:02:40 字數 1933 閱讀 5381

/* 

* 檔名稱:wu.cpp 

* 作    者:武昊 

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

* 版 本 號:v1.0  

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

*輸入描述:無 

*程式輸出:測試資料 */

lintack.h

#include 

#include 

typedef

char

elemtype;  

typedef

struct

linknode  

listack;                      //鏈棧型別定義

void

initstack(listack *&s);  

//初始化棧

void

destroystack(listack *&s);  

//銷毀棧

intstacklength(listack *s);  

//返回棧長度

bool

stackempty(listack *s);  

//判斷棧是否為空

void

push(listack *&s,elemtype e);  

//入棧

bool

pop(listack *&s,elemtype &e);  

//出棧

bool

gettop(listack *s,elemtype &e);  

//取棧頂元素

void

dispstack(listack *s);  

//輸出棧中元素

listack.cpp

//鏈棧基本運算函式

#include "listack.h"

void

initstack(listack *&s)  

//初始化棧

void

destroystack(listack *&s)  

//銷毀棧

free(s);    //s指向尾結點,釋放其空間

}  int

stacklength(listack *s)  

//返回棧長度

return

(i);  

}  bool

stackempty(listack *s)  

//判斷棧是否為空

void

push(listack *&s,elemtype e)  

//入棧

bool

pop(listack *&s,elemtype &e)  

//出棧

bool

gettop(listack *s,elemtype &e)  

//取棧頂元素

void

dispstack(listack *s)  

//輸出棧中元素

printf("\n"

);  

}  main.cpp

#include "listack.h"

intmain()  

printf("\n"

);  

printf("(8)鏈棧為%s\n"

,(stackempty(s)?

"空":

"非空"

));  

printf("(9)釋放鏈棧\n"

);  

destroystack(s);  

return

0;  

}   執行結果:

知識點總結:

鍊錶演算法庫是鏈棧演算法庫的基礎,應用方法類似。

第五周專案2 建立鏈棧演算法庫

問題及 檔名稱 1.cpp 完成日期 2016年9月24日 版本號 v1.0 問題描述 定義鏈棧儲存結構,實現其基本運算,並完成測試。輸入描述 無 程式輸出 鏈棧基本運算的實現結果 listack.h typedef char elemtype typedef struct linknode lis...

第五周專案2 建立鏈棧演算法庫

問題 檔名稱 第5周專案2 建立鏈棧演算法庫.cpp 作 者 楊雅鑫 完成日期 2016年9月27日 版 本 號 v1.0 問題描述 定義鏈棧儲存結構,實現其基本運算,並完成測試。輸入描述 若干資料。程式輸出 各個步驟的文字敘述及其資料的輸出。標頭檔案listack.h ifndef listack...

第五周專案2 建立鏈棧演算法庫

問題及 檔名稱 cc.cpp 版本號 v1.0 問題描述 定義鏈棧儲存結構,實現其基本運算,並完成測試。輸入描述 無 程式輸出 鏈棧基本運算的實現結果 listack.h typedef char elemtype typedef struct linknode listack void inits...