C语言数据结构栈

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




typedef struct Node{
int data;
struct Node* pnext;
}node;


typedef struct Stack{
node* top;
}stack;


void init(stack* newstack){
newstack->top = NULL;
}


void input(stack* newstack,int e){
node* newnode = (node*)malloc(sizeof(node));
newnode->data = e;
newnode->pnext = newstack->top;
newstack->top = newnode;
}


void output(stack* newstack){
newstack->top = newstack->top->pnext;

}


void viewer(stack* newstack){
node* newnode = (node*)malloc(sizeof(node));
newnode = newstack->top;
while(newnode != NULL){
printf("%d ",newnode->data);
newnode = newnode->pnext;
}
}


int main(int argc,char** argv){
int select,x;
stack* newstack = (stack*)malloc(sizeof(stack));
init(newstack);
while(1){
printf("1.入栈 ");
printf("2.出栈 ");
printf("3.遍历栈成员 ");
printf("0.退出程序 ");
printf("请选择你要执行的功能 ");
printf("您选择的功能是:");
scanf("%d",&select);
switch(select){
case 1: printf("请输入入栈成员的值 ");
scanf("%d",&x);
input(newstack,x);
break;
case 2: output(newstack);
break;
case 3: viewer(newstack);
break;
case 0: printf("程序已退出 ");
exit(1);
break;
default : printf("功能选择无效,请重新选择 ");
break;
}
}
}
原文地址:https://www.cnblogs.com/viplanyue/p/12700740.html