資料結構鏈棧實現

2021-09-25 14:52:08 字數 1472 閱讀 3762

如題;這是一套完整的可執行的**;需要讀者有一定的基礎去閱讀;

語言是用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...