11111 lin_stack

来源:互联网 发布:傲剑屠龙刀数据大全 编辑:程序博客网 时间:2024/06/03 19:27
#include <stdio.h>
#include <stdlib.h>
typedef int datatype;
typedef struct node
{
datatype data;
struct node * next;
}LinkStack;


int StackEmpty(LinkStack *top)
{
return(top?0:1);
}


datatype GetTop(LinkStack *top)
{
if(!top)
{
printf("链表是空的!");
return 0;
}
return top->data;
}


LinkStack *Push(LinkStack *top,datatype x)
{
LinkStack *p;
p = (LinkStack *)malloc(sizeof(LinkStack));
p->data = x;
p->next = top;
top = p;
return top;
}


LinkStack* Pop(LinkStack *top)
{
LinkStack *p;
if(!top)
{
printf("链栈是空的!");
return NULL;
}
p = top;
top = top->next;
free(p);
return top;
}


int main()
{
int a[5] = {1,2,3,4,5};
int i;
int isEmpty;
LinkStack *linkStack;
linkStack = (LinkStack *)malloc(sizeof(LinkStack));
linkStack->data=1;
linkStack->next=NULL;
for(i=1;i<5;i++)
{
linkStack = Push(linkStack,a[i]);
}
printf("栈顶元素为:");
printf("%d\n",GetTop(linkStack));
linkStack = Pop(linkStack);
printf("出栈后的栈顶元素是:");
printf("%d",GetTop(linkStack));
printf("\n");


isEmpty = StackEmpty(linkStack);
if(isEmpty == 0)
printf("非空链栈\n");
else
printf("空栈链\n");
return 0;
}
0 0
原创粉丝点击