C语言实现栈(顺序栈)

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
");
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!
");
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 }