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

2021-07-23 07:09:46 字數 2298 閱讀 1016

/*  

* 煙台大學計算機與控制工程學院  

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

* 問題及**:

* 問題描述:棧的鏈式儲存結構及演算法的基本實現。

* 輸入描述:無  

* 程式輸出:結果 */

1.標頭檔案:listack.h,包含定義鏈棧資料結構的**、巨集定義、要實現演算法的函式的宣告;

[csharp]view plain

copy

#ifndef listack_h_included

#define listack_h_included

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);  

//輸出棧中元素

#endif // listack_h_included

2.原始檔:listack.cpp,包含實現各種演算法的函式的定義

[csharp]view plain

copy

#include 

#include 

#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"

);  

}  

3.在同一專案(project)中建立乙個原始檔(如main.cpp),編制main函式,完成相關的測試工作。 例:

[csharp]view plain

copy

#include 

#include "listack.h"

intmain()  

printf("\n"

);  

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

,(stackempty(s)?

"空":

"非空"

));  

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

);  

destroystack(s);  

return

0;  

}  

執行結果:

學習總結:

1.鏈棧的優點是不存在棧滿上溢的情況。

2.棧的所有操作都在單鏈表的表頭進行。

第五周專案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 建立鏈棧演算法庫

檔名稱 wu.cpp 作 者 武昊 完成日期 2016年9月29日 版 本 號 v1.0 問題描述 定義鏈棧儲存結構,實現其基本運算,並完成測試。輸入描述 無 程式輸出 測試資料 lintack.h include include typedef char elemtype typedef stru...