stack

#include<stdio.h>
#include<stdlib.h>
#define FALSE 0
#define TRUE 1
typedef int BOOL;

typedef struct STACK
{
    int num;
    struct STACK *pre;
}stack;
void push(stack **pstack,int shu)
{
    stack *add=(stack *)malloc(sizeof(stack *));
    add->num=shu;
    add->pre=*pstack;
    *pstack=add;
}
int pop(stack **pstack)
{
    stack *del;
    int shu;
    del=*pstack;
    *pstack=(*pstack)->pre;
    shu=del->num;
    free(del);
    return shu;
}
BOOL isEmpty(stack *pstack)
{
    if(NULL==pstack)
    {
        return 1;
    }
    return 0;
}
int main()
{
    stack *p=NULL;
    push(&p,1);
    push(&p,2);
    push(&p,3);
    push(&p,4);
    while(!isEmpty(p))
    {
        printf("%d\n",pop(&p));
    }
    return 0;
}

你可能感兴趣的:(stack)