資料結構 c 棧

2021-07-11 07:54:33 字數 1079 閱讀 2103

資料結構中棧還是比較常用的,在某些特定情況下非常便利,例如進製轉化等。

棧又稱為後進先出的線性表(lifo),同樣分為順序棧和鏈式棧,實現起來順序棧和順序表差不多,鏈式棧和鏈式佇列差不多而且更加簡單。

和順序表類似,首先定義巨集,儲存空間初始分配量和每次再分配的增量,以及結構體表示資料結構。

#include #include #include //定義null

#define stack_init_size 100

#define stackincrement 10

typedef struct sqstack;

順序棧和順序表相較,多了個棧頂指標,少了當前長度,棧頂指標-棧底指標即可得出當前棧長。

棧空時,棧頂指標和棧底指標都指向基址。和順序表相同,也可以通過s.base[x]隨機訪問元素。

void initstack(sqstack &s);

void gettop(sqstack s,char &c);

void push(sqstack &s,char c);

void pop(sqstack &s,char &c);

定義主函式以及以上函式的實現:

main()

char c;

gettop(s,c);

printf("\ngettop:%c\n",c);

pop(s,c);

printf("彈出棧頂元素:%c\n",c);

for(char* p = s.base;p < s.top;p ++)

}void initstack(sqstack &s)

void gettop(sqstack s,char &c)

void push(sqstack &s,char c)

*s.top ++ = c;

}void pop(sqstack &s,char &c)

執行結果:

資料結構 棧 C

include include include include using namespace std 結點 class mydata 預設建構函式 mydata int value data value next null 帶引數建構函式 int data mydata next 棧結構 clas...

C 資料結構 棧

23415 1進棧,2進棧,2出棧,3進棧,3出棧,4進棧,4出棧,1出棧,5進棧,5出棧 23145 1進棧,2進棧,2出棧,3進棧,3出棧,1出棧,4進棧,4出棧,5進棧,5出棧 15432 1進棧,1出棧,2進棧,2進棧,4進棧,5進棧,5出棧,4出棧,3出棧,2出棧 54132不可能。棧 s...

資料結構 棧 c 迷宮

1,棧的基本操作和迷宮的資料結構 includeusing namespace std define stack init size 100 define stack increment size 100 typedef structposttype 座標結構 typedef struct bloc...