栈的创建入栈出栈

来源:互联网 发布:网络文学创作原理pdf 编辑:程序博客网 时间:2024/06/05 14:21

栈的创建入栈出栈

#include<stdio.h>#include<stdlib.h>typedef struct node                //结点结构{int data;struct node *next;}Node, *Pnode;typedef struct stack               //栈结构{Pnode top;Pnode bottom;}Stack, *Pstack;void init(Pstack);                  //栈的初始化void push(Pstack, int number);     //入栈void pop(Pstack);                  //出栈void Traversal(Pstack);            //遍历栈int main(void){Pstack p;init(&p);                      //栈的初始化push(&p, 1);                   //入栈push(&p, 2);                   //入栈push(&p, 3);                   //入栈push(&p, 4);                   //入栈push(&p, 5);                   //入栈Traversal(&p);                 //遍历栈pop(&p);                       //出栈Traversal(&p);                 //遍历栈return 0;}void init(Pstack p)                //栈的初始化{p->top = (Stack *)malloc(sizeof(Stack));if(p->top == NULL){printf("栈初始化失败!\n");exit(-1);}else{p->top = p->bottom;p->top->next = NULL;}return;}void push(Pstack p, int number)    //入栈{Node *w;w = (Node *)malloc(sizeof(Node));w->data = number;w->next = p->top;p->top = w;return;}void pop(Pstack p)                 //出栈{ Node *w;if(p->top == p->bottom){printf("此栈为空!\n");exit(-1);}else{w = p->top;p->top = p->top->next;free(w);}return;}void Traversal(Pstack p)           //遍历栈{Node *w;w = p->top;while(w != p->bottom){printf("%d ",w->data);w = w->next;}printf("\n");return;}


原创粉丝点击