C语言实现栈

1、结构体

typedef struct my_stack {
    int len;//既可以表示栈顶编号也可以表示元素个数
    typename a[10001];//用数组表示栈内元素
}Stack;

2、初始化

Stack* create_emptystack() {
    Stack *s;
    s = (Stack*)malloc(sizeof(Stack));
    if(s == NULL)
        printf("malloc error\n");
    else
        s->len = -1;
    return s;
}

3、判断栈是否为空

1 int isempty(Stack *s) {
2     return s->len == -1;
3 }

4、入栈

void push_stack(Stack *s, typename value) {
    if(s->len > 10001)
        printf("exceed!\n");
    else {
        s->len++;
        s->a[s->len] = value;
    }
}

5、出栈

void pop_stack(Stack *s) {
    if(!isempty(s))
        s->len--;
}

6、获取栈顶元素

1 tpyename get_top(Stack *s) {
2     return s->a[s->len];
3 }

相关推荐