示例://
//
//
/*
*栈操作
**/
#include
#include
#defineN50栈大小
//结构体栈
typedefstructstack
{
inttop;//栈顶位置
intdata[N];//数据
}STACK;
//是否为空
intisEmpty(STACK*stack)
{
if(stack->top==-1)
{
return1;
}
return0;
}
//是否已满
intisFull(STACK*stack)
{
if(stack->top==N-1)
{
return1;
}
return0;
}
//设为空
voidsetEmpty(STACK*stack)
{
stack->top=-1;
}
//压栈
intpush(STACK*stack,intdata)
{
if(isFull(stack))
{
printf("栈已满\n");
return-1;
}
stack->top+=1;
stack->data[stack->top]=data;
}
//弹栈
intpop(STACK*stack)
{
if(isEmpty(stack))
{
printf("栈已空");
return-1;
}
intnum=stack->data[stack->top];
stack->top-=1;
//printf("top=%d\n",stack->top);
returnnum;
}
voidtest()
{
printf("栈结构体类型大小:%d\n",sizeof(STACK));
printf("分配内存,并初始化:\n");
STACK*stack=(STACK*)calloc(1,sizeof(STACK));//calloc分配内存:元素个数元素大小
if(stack==NULL)
{
printf("内存分配失败\n");
return;
}
printf("内存分配成功,地址为:%p\n",stack);
setEmpty(stack);
//压栈
for(inti=0;i |