这里写自定义目录标题
#include<stdio.h>
#include<stdlib.h>
//初始化一个顺序栈
struct snode
{
int Top;
int Max;
int *Data;
};
//判断这个栈是否满了,满了为false,不满为true
bool full(struct snode *s)
{
if(s->Top==s->Max-1)
return true;
else
return false;
}
//判断这个栈是否空了,空了返回true,没有空返回false
bool Empty(struct snode *s)
{
if (s->Top==-1)
return true;
else
return false;
}
//创建一个空栈
struct snode* create(int max)
{
struct snode *s=(struct snode*)malloc(sizeof(struct snode));
s->Data=(int *)malloc(max*sizeof(int));
s->Top=-1;
s->Max=max;
return s;
}
//入栈
void push (struct snode *s,int x)
{
if(full(s))
{
printf("满栈\n");
}
else
{
s->Data[(s->Top+1)]=x;
++(s->Top);
printf("入栈成功\n");
}
}
//出栈
int pop(struct snode *s)
{
if(Empty(s))
{
printf("栈里面的元素都出完了,这个栈空了");
return -1;
}
else
{return s->Data[s->Top];
--(s->Top);}
}
int main()
{
int a,b,c;
printf("请输入您定义的栈的大小:\n");
scanf("%d",&a);
struct snode *s=create(a);
printf("现在已经创建了一个空栈\n");
printf("请输入一个入栈元素:\n");
scanf("%d",&b);
push(s,b);
printf("再进行一次出栈\n");
c=pop(s);
printf("%d",c);
return 0;
}