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