順序棧和鏈棧的實現

2022-03-17 02:44:36 字數 2390 閱讀 9270

這學期開了資料結構,剛開始以為**應該會很簡單,但是真正實現起來才發現有好多細節需要注意, 而且發現指標的姿勢忘了好多好多((٩(//̀д/́/)۶))

130h.h

1 #include 2

#define max 100

3struct

node14;

9struct

node210;

1415

void

menu();

16bool init1(node1 *&s);

17void input1(node1 *s, int

x);18

bool pop1(node1 *s);

19int top1(node1 *s);

20bool init2(node2 *&s);

21void input2(node2 *s, int

x);22

bool pop2(node2 *s);

23int top2(node2 *s);

main.cpp

1 #include "

130h.h"2

using

namespace

std;34

intmain()519

switch

(t)20

33 puts("

插入成功");

34break;35

case3:

36 puts("

請輸入n的值");

37 cin>>n;

38for(i = 1; i <= n; i++)

3945}46

if(i == n+1) puts("

刪除成功");

47break;48

case4:

49 x =top1(s1);

50if(x == -1) puts("

棧空!"

);51

else printf("

%d\n

", x);

52break;53

case5:

54if(init2(s2)) puts("

yes"

);55

else puts("no"

);56

break;57

case6:

58 puts("

輸入元素,-1結束");

59while(1)60

65 puts("

插入成功");

66break;67

case7:

68 puts("

請輸入n的值");

69 cin>>n;

70for(i = 1; i <= n; i++)

7177}78

if(i==n+1) puts("

刪除成功");

79break;80

case8:

81 x =top2(s2);

82if(x == -1) puts("

棧空!"

);83

else printf("

%d\n

", x);

84break;85

}86}87

return0;

88 }

function.cpp

1 #include "

130h.h"2

3void

menu()420

21bool init1(node1 *&s)//

初始化順序棧

2230

31void input1(node1 *s, int x)//

插入棧頂元素

3238 *s->top++ =x;39}

4041

bool pop1(node1 *s)//

刪除棧頂元素

4247

48int top1(node1 *s)//

彈出棧頂元素

4953

54bool init2(node2 *&s)//

初始化鏈棧

5561

62void input2(node2 *s, int x)///

/插入棧頂元素

6370

71bool pop2(node2 *s)///

/刪除棧頂元素

7279

80int top2(node2 *s)///

/彈出棧頂元素

81

加油~

棧的實現 順序棧和鏈棧

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

順序棧和鏈棧實現

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

C 實現順序棧和鏈棧

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