資料結構 棧的鏈式儲存

2021-08-08 21:00:16 字數 2092 閱讀 9180

目標效果:

stack.h頁面:

#ifndef stack_h_included

#define stack_h_included

#ifndef elemtype

#define elemtype int /* 資料元素型別預設為 int */

#define elemtype_tag

#endif

//鏈棧的儲存結構定義

typedef struct lnode lnode, *linklist;

typedef linklist linkstack; //鏈棧型別

//鏈棧的基本操作宣告

//構造乙個空棧s

bool initstack(linkstack &s);

//銷毀棧s

bool destroystack(linkstack &s);

//將棧s清空

bool clearstack(linkstack &s);

//若棧s為空返回true,否則false

bool stackempty(linkstack s);

//返回棧s中的元素個數

int stacklength(linkstack s);

//用e返回棧頂元素

// 前提:棧s存在且不空

bool gettop(linkstack s, elemtype &e);

//元素e入棧s

bool push(linkstack &s, elemtype e);

//s出棧用e返回出棧元素

// 前提:棧s存在且不空

bool pop(linkstack &s, elemtype &e);

/////鏈棧的基本操作的實現

//構造乙個空棧s

bool initstack(linkstack &s)

//銷毀棧s

bool destroystack(linkstack &s)

//將棧s清空

bool clearstack(linkstack &s)

//若棧s為空返回true,否則false

bool stackempty(linkstack s)

//返回棧s中的元素個數

int stacklength(linkstack s)

return i;

}//用e返回棧頂元素

// 前提:棧s存在且不空

bool gettop(linkstack s, elemtype &e)

//元素e入棧s

bool push(linkstack &s, elemtype e)

//s出棧用e返回出棧元素

// 前提:棧s存在且不空

bool pop(linkstack &s, elemtype &e)

#ifdef elemtype_tag

#undef elemtype

#undef elemtype_tag

#endif

#endif

dsp0301.cpp頁面:

#include #include )

#include "stack.h" //鏈棧

//測試鏈棧的主程式

int main()

printf("\n棧中元素個數:");

printf("%d",stacklength(s));

printf("\n棧頂元素:");

gettop(s,x);

printf("%d",x);

printf("\n出棧結果:");

while(!stackempty(s))

printf("\n棧中元素個數:");

printf("%d\n",stacklength(s));

destroystack(s); //銷毀棧

system("pause");

return 0;

}

《資料結構 棧》鏈式儲存

一 鏈式儲存 和 順序結構 對比?棧的 順序結構 與 鏈結構,他們在時間複雜度上都一樣,都為o 1 如果棧的數量可預知,則使用順序棧,否則,則使用鏈棧 鏈棧 要求每個元素都有指標域,增加了記憶體開銷,但對於長度無限制。二 棧 鏈式結構 棧的 順序結構 與 鏈結構,他們在時間複雜度上都一樣,都為o 1...

資料結構 棧 棧的鏈式儲存結構

資料結構 棧 棧的鏈式儲存結構 用頭插法建立的鏈棧,棧頂元素為s next所指結點 date 2017 4 14 include include define initsize 100 define elemtype char typedef struct lnode linkstack void ...

資料結構 棧的鏈式儲存

include iostream using namespace std typedef struct stacknode stacknode,stacknodeptr struct stacklist 棧與鍊錶不同的地方是,棧除了用定義了節點的結構體外,還定義了乙個棧的結構體,裡面包含棧的頭節點,...