資料結構中棧還是比較常用的,在某些特定情況下非常便利,例如進製轉化等。
棧又稱為後進先出的線性表(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...