1、結構體
1 typedef struct my_stack { 2 int len;//既可以表示棧頂編號也可以表示元素個數 3 typename a[10001];//用數組表示棧內元素 4 }Stack;
2、初始化
1 Stack* create_emptystack() { 2 Stack *s; 3 s = (Stack*)malloc(sizeof(Stack)); 4 if(s == NULL) 5 printf("malloc error\n"); 6 else 7 s->len = -1; 8 return s; 9 }
3、判斷棧是否為空
1 int isempty(Stack *s) { 2 return s->len == -1; 3 }
4、入棧
1 void push_stack(Stack *s, typename value) { 2 if(s->len > 10001) 3 printf("exceed!\n"); 4 else { 5 s->len++; 6 s->a[s->len] = value; 7 } 8 }
5、出棧
1 void pop_stack(Stack *s) { 2 if(!isempty(s)) 3 s->len--; 4 }
6、獲取棧頂元素
1 tpyename get_top(Stack *s) { 2 if(!isempty) 3 return s->a[s->len]; 4 }