链栈

    技术2024-10-01  60

    链栈

    #include<stdio.h> #include<stdlib.h> typedef int datatype; typedef struct stackLink{ datatype data; struct stackLink *next; }Stack,*Psnode; typedef struct{ Psnode top; int length; }Linkstack; void init(Linkstack *q){ q->top = (Psnode)malloc(sizeof(Stack)); q->top = NULL; q->length = 0; } void Push(Linkstack *q,datatype value){ Psnode news; news = (Psnode)malloc(sizeof(Stack)); news->data = value; news->next = q->top; q->top = news; q->length++; } datatype Pop(Linkstack *q){ Psnode p; datatype x; p = q->top; if(p == NULL){ printf("链栈为空:"); }else{ printf("%d ",p->data); x = p->data; q->top = p->next; q->length --; free(p); } return x; } void Show(Linkstack *q){ Psnode p; p = q->top; printf("链栈为:"); if(p == NULL){ printf("空"); }else{ for(;p != NULL;p = p->next) printf("%d ",p->data); } printf("\n"); } void Pankong(Linkstack *q){ if(q->top == NULL){ printf("链栈为空"); }else{ printf("链栈不为空"); } } datatype Put(Linkstack *q){ if(q->top == NULL){ printf("链栈为空"); } return q->top->data; }
    Processed: 0.012, SQL: 9