按照「0207將演算法變程式」[**]部分建議的方法,建設自己的專業基礎設施演算法庫。
鏈棧演算法庫採用程式的多檔案組織形式,包括兩個檔案:
1.標頭檔案:listack.h,包含定義鏈棧資料結構的**、巨集定義、要實現演算法的函式的宣告;
#ifndef listack_h_included
#define listack_h_included
typedef char elemtype;
typedef struct linknode
listack; //鏈棧型別定義
void initstack(listack *&s); //初始化棧
void destroystack(listack *&s); //銷毀棧
int stacklength(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,包含實現各種演算法的函式的定義
#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();}
3.在同一專案(project)中建立乙個原始檔(如main.cpp),編制main函式,完成相關的測試工作。 例:
#include
#include listack.h
int main()
printf(
); printf((8)鏈棧為%s
,(stackempty(s)?空:非空));
printf((9)釋放鏈棧
); destroystack(s);
return 0;
}
資料結構之自建演算法庫 順序棧
本文針對資料結構基礎系列網路課程 3 棧和佇列中第3課時棧的順序儲存結構及其基本運算實現。順序棧演算法庫採用程式的多檔案組織形式,包括兩個檔案 1.標頭檔案 sqstack.h,包含定義順序棧資料結構的 巨集定義 要實現演算法的函式的宣告 ifndef sqstack h included defi...
資料結構之自建演算法庫 順序棧
順序棧演算法庫採用程式的多檔案組織形式,包括兩個檔案 1.標頭檔案 sqstack.h,包含定義順序棧資料結構的 巨集定義 要實現演算法的函式的宣告 ifndef sqstack h included define sqstack h included define maxsize 100 type...
資料結構之自建演算法庫 鏈隊(鏈式佇列)
本文針對資料結構基礎系列網路課程 3 棧和佇列中第10課時佇列的鏈式儲存結構及其基本運算的實現。鏈隊演算法庫採用程式的多檔案組織形式,包括兩個檔案 1.標頭檔案 liqueue.h,包含定義鏈隊資料結構的 巨集定義 要實現演算法的函式的宣告 ifndef liqueue h included def...