先输入一个数n,在输入n个数,倒序输出。
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int m;
struct node *next;
}node;
typedef struct stack
{
node *front;
node *tail;
}stack;
int n;
stack *t = (stack* )malloc(sizeof(stack));
void init() //初始化
{
t->front = (node*)malloc(sizeof(node));
t->tail = (node*)malloc(sizeof(node));
t->front = t->tail;
t->front->next = t->tail->next = NULL;
}
int isempty() //判断栈是否为空,空返回0
{
if(t->front == t->tail) return 0;
else return 1;
}
void push(int m)
{
node *p = (node* )malloc(sizeof(node));
p->m = m;
p->next = t->front;
t->front = p;
}
int pop()
{
int m;
node *p;
p = t->front;
m = p->m;
t->front = t->front->next;
free(p);
return m;
}
void input()
{
int m;
for(int i = 0;i < n;i++)
{
scanf("%d",&m);
push(m);
}
}
void output()
{
while(isempty())
{
printf("%d ",pop());
}
printf("\n");
}
int main()
{
init();
scanf("%d",&n);
input();
output();
}