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

2022-09-17 00:12:12 字數 2653 閱讀 8792

工程目錄結構:

函式的返回結果,ok、erreo、true、false

12 typedef int elemtype; //

結點資料域的資料型別

1314

//#endif

common.c:

1 #include "

common.h"2

3status visit(elemtype e)

4

linkstack.h:

1

//鏈棧的結點結構

2 typedef struct

stacknode

3stacknode, *linkstackptr;78

//鏈棧結構

9 typedef struct

10linkstack;

linkstack.c:

1 #include 2 #include 

3 #include "

common.h

"4 #include "

linkstack.h"5

6//初始化鏈棧

7 status initlinkstack(linkstack *s)814

15 s->top =null;

16 s->count = 0;17

18return

ok;19}20

21 status clearlinkstack(linkstack *s)

2232

33return

ok;34}35

36//

判斷鏈棧是否為空

37status linkstackempty(linkstack s)

3844

45//

壓棧46 status linkstackpush(linkstack *s, elemtype e)

4755

56//

彈棧57 status linkstackpop(linkstack *s, elemtype *e)

5868

69//

獲取棧頂元素的值

70 status getlinkstacktop(linkstack s, elemtype *e)

7178

return

ok;79}80

81//

返回鏈棧的長度

82int

linkstacklength(linkstack s)

8386

87status linkstacktr**erse(linkstack s)

8896

return

ok;97}98

99void

linkstackstart()

100108

else

109112

113if (true ==linkstackempty(s))

114117

else

118121

122 printf("

\n壓棧元素(1-5)\n");

123for (int i = 1; i <= 5; ++i)

124 linkstackpush(&s, i);

125126

if (true ==linkstackempty(s))

127130

else

131134

135 printf("

\n鏈棧中的元素一次是:\n");

136linkstacktr**erse(s);

137138

elemtype e;

139 linkstackpop(&s, &e);

140141 printf("

\n\n彈出棧頂元素: %d

", e);

142143 getlinkstacktop(s, &e);

144 printf("

\n\n現在的棧頂元素為: %d\n

", e);

145146 clearlinkstack(&s);

147 printf("

\n清空鏈棧鏈棧,count = %d\n

", s.count);

148149 printf("

\n\n######## 鏈棧 測試 end ############\n");

150 }

main.c:

1

intmain()

2

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

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

鏈式儲存mysql 鏈棧 棧的鏈式儲存結構

前面講完了棧的順序儲存結構,我們現在來看看棧的鏈式儲存結構,簡稱為鏈棧。鏈棧是沒有附加頭結點的運算受限的單鏈表。棧頂指標就是鍊錶的頭指標。棧是用棧頂來做插入和刪除操作,那麼對於鏈棧的棧頂放在鍊錶的頭部還是尾部呢?單鏈表有頭指標,而棧頂指標也是必須的,那幹嗎不讓它倆合二為一呢,所以比較好的辦法是把棧頂...

《資料結構 棧》鏈式儲存

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