順序棧的實現(C語言)

2021-06-09 20:30:23 字數 1330 閱讀 8478

/*

順序棧vs2010 除錯

*/#include #include #include #define true 1

#define false 0

#define stack_init_size 100

#define stackincreasement 10

struct seqstack

;//初始化棧

int init_seq_stack(struct seqstack *l)

l->top = 0;

l->maxnum = stack_init_size;

return 1;}/*

函式功能: 判斷是否棧滿

返 回 值: 0 棧滿; 1 棧未滿

*/int is_stack_full(struct seqstack l)

/*函式功能: 判斷是否棧空

返 回 值: 0 棧空; 1 棧未空

*/int is_stack_empty(struct seqstack l)

else }

/*函式功能: 數num 進棧

返 回 值: 0 進棧失敗; 1 進棧成功

*/int push_stack(struct seqstack *l, int num)

l->top++;

l->elem[l->top] = num;

return 1;}/*

函式功能: 出棧,出棧的數存到x內

返 回 值: 0 失敗; 1 成功

*/int pop_stack(struct seqstack *l, int *x)

*x = l->elem[l->top];

l->top = l->top - 1;

return 1;}/*

函式功能: 取棧頂元素

返 回 值: 棧頂元素值

*/int get_top_elem(struct seqstack l)

/*函式功能: 列印棧內元素

*/void print_stack_elem(struct seqstack l)

printf("bottom\n");

printf("\n");}/*

函式功能: 將棧置空

*/void set_empty(struct seqstack *l)

/*函式功能: 銷毀棧

*/int destory_stack(struct seqstack *l)

free(l->elem);

return 1;

} int main(int argc, char *argv)

順序棧的實現C語言

沒有什麼要講的。順序棧的結構體裡 頭指標,尾指標,還有棧的容量。構建棧的時候,就是尋找出一片大小合適的記憶體空間,並用結構體裡的尾指標指向這片空間。頭指標開始也是指向這片空間的。壓棧就是 先判斷空間是否足夠?不夠的話,繼續分配空間 夠的話給頭指標指向的結點賦值,並把頭結點向後移一位 也就是說頭指標始...

順序棧的實現(C語言)

順序棧vs2010 除錯 include include include define true 1 define false 0 define stack init size 100 define stackincreasement 10 struct seqstack 初始化棧 int init...

c語言 順序棧的實現

include include include define stack init size 100 define stack increment 10 using namespace std typedef struct stack 結構體定義 stack 函式宣告部分 void error ch...