如題;這是一套完整的可執行的**;需要讀者有一定的基礎去閱讀;
語言是用c語言實現;在c++環境中編寫;在c++中可直接執行;在c語言中需要改部分標頭檔案和輸出語句;
標頭檔案;這要是**的宣告部分;
# ifndef _head_
# define _head_
# include using namespace std;
typedef int datatype;
typedef struct node
snode, * psnode;
typedef struct
linkstack, * plinkstack;
plinkstack createlinkstack(void);
void destroylinkstack(plinkstack * ps);
bool emptylinkstack(plinkstack s);
bool pushlinkstack(plinkstack s, datatype x);
bool poplinkstack(plinkstack s, datatype * val);
bool gettoplinkstack(plinkstack s, datatype * val);
# endif
實現檔案;主要是**的實現;
# include "head.h"
plinkstack createlinkstack(void)
else }
void destroylinkstack(plinkstack * ps)
free(s);
s = null;
*ps = null;
return;
}bool emptylinkstack(plinkstack s)
else }
bool pushlinkstack(plinkstack s, datatype x)
else }
bool poplinkstack(plinkstack s, datatype * val)
else }
bool gettoplinkstack(plinkstack s, datatype * val)
else
}
main函式;
# include "head.h"
int main(int argc, char ** ar**)
for (int i = 0; i < 10; i++)
cout << endl;
cout << emptylinkstack(s) << endl;
destroylinkstack(&s);
if (null == s)
system("pause");
return 0;
}
資料結構(C實現) 鏈棧
鏈棧,即棧的鏈式儲存結構,鏈棧通常使用不帶頭結點的單鏈表來表示,因此其結點的結構和單鏈表的結點結構相同。在乙個鏈棧中,棧底就是鍊錶的最後乙個結點,而棧頂總是鍊錶的第乙個結點。因此,新入棧的元素即為鍊錶中採用頭插法新加入的結點,乙個鏈棧可以由棧頂指標唯一確定,當top為null時,則表示該棧是乙個空的...
資料結構 棧 鏈棧
棧的插入和刪除只在棧頂進行操作,在單鏈表中,頭指標是單鏈表的必須元素 而在棧中,棧頂指標也是鏈棧的必須元素,且一般將棧頂放在單鏈表的頭部。線性表有順序儲存結構和鏈式儲存結構,棧屬於線性表的一種,也具有順序儲存結構和鏈式儲存結構。對於棧的鏈式儲存結構,一般稱之為鏈棧。棧的特點 先進後出 棧函式實現 1...
資料結構 鏈棧
編寫乙個程式,實現鏈棧 假設棧中元素型別為char 的各種基本運算。並完成下面功能 1 初始化鏈棧s 2 判斷鏈棧s是否非空 3 依次進鏈棧元素a,b,c,d,e 4 判斷鏈棧s是否非空 5 輸出鏈棧長度 6 輸出從棧頂到棧底元素 7 輸出出鏈棧序列 8 判斷鏈棧s是否非空 9 釋放鏈棧。inclu...