#include "stdafx.h" #include "malloc.h" #include "stdio.h" #include "iostream" struct s_node { int data; struct s_node *next; }; typedef struct s_node node; typedef struct s_node* link; link stack = NULL; void push(int x) { link newlink = (link)malloc(sizeof(node)); newlink->data = x; newlink->next = stack; stack = newlink; } int pop() { int x ; link temp; if(stack == NULL) { printf("pop error/n"); return (-1); } else { x = stack->data; temp = stack; stack = stack->next; free(temp); return x; } } void prt(link p) { if(p == NULL) { return ; } else { prt(p->next); printf("[%d]",p->data); return ; } } int main() { int x, y; do { printf("/n1:push data/n"); printf("2:pop data/n"); printf("3:exit/n"); scanf("%d",&x); switch(x) { case 1: { printf("input a int and push()..."); scanf("%d",&y); push(y); prt(stack); break; } case 2: { pop(); prt(stack); break; } case 3: { return 1; } default:prt(stack); break; } }while(true); return 1; }