/*
*链栈的创建
*栈满的判断
*栈空的判断
*入栈
*出栈
*取栈顶元素
*/
#include<stdio.h>
#include<stdlib.h>
typedef int element;
typedef struct link_stack
{
element data;
struct link_stack *next;
}Link_Stack;
Link_Stack*creat_linkstack();//链栈的创建
int empty_link_stack(Link_Stack*top);//判断栈空
int push_stack(Link_Stack*top,element x);//入栈
int pop_link_stack(Link_Stack*top,element*x);//出栈操作
int getdata_linkstack(Link_Stack*top,int *x);//取栈顶元素
void main()
{
Link_Stack*top;
element x,y,z;
top=creat_linkstack();
if(top==NULL)
printf("链栈创建失败:\n");
else
printf("链栈创建成功:\n");
if(empty_link_stack(top))
printf("链栈为空:\n");
else
printf("链栈不为空:\n");
printf("请输入要入栈的数据:\n");
scanf("%d",&y);
if(push_stack(top,y))
printf("入栈成功:\n");