C 實現順序棧和鏈棧

2021-10-19 10:25:34 字數 2471 閱讀 6252

二,順序棧的實現

三,鏈棧的實現

//棧的初始化

template

<

typename t>

bool stack

::isempty()

//判斷棧是否為空

template

<

typename t>

int stack

::getlength()

//獲得棧中資料元素的個數

template

<

typename t>

int stack

::clear()

//清空棧

template

<

typename t>

void stack

::push

(t x)

//入棧

else

}template

<

typename t>

void stack

::pop()

//出棧

else

}template

<

typename t>

stack::~

stack()

//銷毀棧

}int

main()

#include

using

namespace std;

template

<

typename t>

struct node //棧中儲存的元素

;template

<

typename t>

class

stack

;template

<

typename t>

stack

::stack()

//鏈棧初始化

template

<

typename t>

stack::~

stack()

//鏈棧銷毀

}template

<

typename t>

bool stack

::isempty()

//判斷鏈棧是否為空

template

<

typename t>

t stack

::gettop()

//獲得棧頂元素

else

return0;

}template

<

typename t>

void stack

::push

(const t a)

//入棧

template

<

typename t>

void stack

::pop()

//出棧

else

}template

<

typename t>

int stack

::getlength()

//獲得棧中元素個數

intmain()

for(

int i=

0; i<

3; i++

) lists.

push(6

);lists.

push(7

);lists.

pop();

int size = lists.

getlength()

;for

(int i=

0; i

)}

C 實現順序棧和鏈棧

順序棧和鏈棧分別類似於順序表和單鏈表,只是由於棧的first in last out性質,其操作相對簡單,是順序表和單鏈表的子集。鏈棧中的鏈不使用head屬性,這一屬性是多餘的,使用鏈棧類的topnode屬性即可。另外,為了避免每次返回鏈棧的長度都要遍歷所有結點,在鏈棧類中增加num屬性,push操...

順序棧和鏈棧實現

以前參照weiss的 資料結構與演算法分析 寫過兩篇隨筆 因為考研的緣故,現在看了嚴蔚敏的 資料結構 c版 也跟著寫了一遍,原理都類似 鏈棧 鏈棧 typedef status typedef struct node stack typedef struct node ptrtonode struc...

棧的實現 順序棧和鏈棧

本文主要給出我對棧的實現,包括順序棧和鏈棧兩種實現方式。common.h ifndef common h define common h 函式結果狀態碼 define true 1 define false 0 define ok 1 define error 0 define infeasible...