#include "stdio.h"
#include "stdlib.h"
struct node{
int data;
struct node *next;
};
typedef struct node *p;
typedef int ElementType;
typedef p stack;
void error(char *s);
stack creat_stack();
void push(ElementType x,stack s);
void pop(stack s);
ElementType top(stack s);
int main()
{
int count=0,num[10];
stack s;
ElementType data;
s=creat_stack();
printf("input num 10:\n");
for(count;count<=9;count++)
{
scanf("%d",&num[count]);
push(num[count],s);
}
pop(s);
data=top(s);
printf("d=%d\n",data);
return 0;
}
stack creat_stack()
{
stack s;
s=(stack)malloc(sizeof(struct node));
if(NULL==s)
error("out of space!\n");
s->next=NULL;
printf("creat stack finish!\n");
return s;
}
void error(char *s)
{
printf("%s\n",s);
}
void push(ElementType x,stack s)
{
p TmpCell;
TmpCell=(stack)malloc(sizeof(struct node));
if(NULL==TmpCell)
error("out of space!\n");
else
{
TmpCell->data=x;
TmpCell->next=s->next;
s->next=TmpCell;
//s=TmpCell;
}
}
void pop(stack s)
{
p firstcell;
if(s->next==NULL)
error("out of space!\n");
else
{
firstcell=s->next;
s->next=s->next->next;
}
}
ElementType top(stack s)
{
if(s->next==NULL)
error("out of space!\n");
else
return s->next->data;
}