美文网首页
c语言实现顺序栈

c语言实现顺序栈

作者: 一路向后 | 来源:发表于2022-05-13 21:51 被阅读0次

1.源码实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>

#define MAX_VERT_NUM 20

typedef struct {
    int data[MAX_VERT_NUM];
    int top;
} stack_node, *stack;

stack stack_new()
{
    stack s = (stack)malloc(sizeof(stack_node));

    s->top = -1;

    return s;
}

void stack_free(stack s)
{
    free(s);
}

void stack_clear(stack s)
{
    s->top = -1;
}

short stack_is_empty(stack s)
{
    if(s->top < 0)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

short stack_push(stack s, int x)
{
    if(s->top >= MAX_VERT_NUM - 1)
    {
        return 0;
    }
    else
    {
        s->top++;
        s->data[s->top] = x;

        return 1;
    }
}

short stack_pop(stack s)
{
    if(s->top < 0)
    {
        return 0;
    }

    s->top--;

    return 1;
}

int stack_top(stack s)
{
    return s->data[s->top];
}

int main()
{
    stack s = stack_new();
    int i;

    for(i=0; i<10; i++)
    {
        stack_push(s, i);
    }

    for(i=0; i<10; i++)
    {
        printf("%d ", stack_top(s));

        stack_pop(s);
    }

    printf("\n");

    stack_free(s);

    return 0;
}

2.编译源码

$ gcc -o test test.c -std=c89

3.运行及其结果

./test
9 8 7 6 5 4 3 2 1 0 

相关文章

网友评论

      本文标题:c语言实现顺序栈

      本文链接:https://www.haomeiwen.com/subject/xhwuurtx.html