栈--出栈和入栈

来源:互联网 发布:hifiman supermini知乎 编辑:程序博客网 时间:2024/04/30 21:23
#include <stdio.h>#include <malloc.h>typedef struct node{    int data;    struct node *pNext;}node;typedef struct StackLink{    node *top;    int size;}StackLink;void push(StackLink *S,int num){    node *p = (node *)malloc(sizeof(node));    p->data = num;    p->pNext = NULL;    if (S->size == 0)    {        S->size++;        S->top = p;    }    else    {        p->pNext = S->top;        S->top = p;        S->size++;    }}int pop(StackLink *S){    if (S->top == NULL)    {        printf("empty\n");        return 0;    }    int num;    num = S->top->data;    node *p = S->top;    S->top = p->pNext;    free(p);    return num;}void test(){    StackLink *S;    S = (StackLink*)malloc(sizeof(StackLink));    S->top = NULL;    S->size = 0;    push(S,1);    push(S,2);    push(S,3);    push(S,4);    printf("%d\n",pop(S));    printf("%d\n",pop(S));    printf("%d\n",pop(S));    printf("%d\n",pop(S));    printf("%d\n",pop(S));}int main(){    test();    return 0;}
0 0