stack.cpp
#include<stdio.h>
#include<stdlib.h>
typedef struct Tstack_node stack_node;
typedef struct Tstack_node {
int data;
stack_node *next;
} stack_node;
typedef struct {
stack_node *top;
} stack;
void push(stack *mstack, int data);
stack_node *pop(stack *mstack);
void traverse(stack *mstack);
int main()
{
int data;
stack *mstack = (stack *)malloc(sizeof(stack));
mstack->top = NULL;
stack_node *popnode;
while (scanf("%d", &data) == 1) {
if (data == -1)
break;
else
push(mstack, data);
traverse(mstack);
}
while ((popnode = pop(mstack)) != NULL) {
free(popnode);
traverse(mstack);
}
return 0;
}
void push(stack *mstack, int data)
{
stack_node *pushnode = (stack_node *)malloc(sizeof(stack_node));
pushnode->data = data;
pushnode->next = mstack->top;
mstack->top = pushnode;
}
stack_node *pop(stack *mstack)
{
stack_node *popnode = mstack->top;
if (popnode != NULL) mstack->top = mstack->top->next;
return popnode;
}
void traverse(stack *mstack)
{
stack_node *curnode = mstack->top;
while (curnode != NULL) {
printf("%d ", curnode->data);
curnode = curnode->next;
}
puts("");
}
--
全世界都知道我喜歡妳
唯一不知道ㄉ........
就是妳.......