帮我把下面这段C语言代码注释一下

2025-06-22 00:12:37
推荐回答(1个)
回答1:

int
InitStack(Stack
&s)
//初始化
{
s.base=(int*)malloc(STACKSIZE*sizeof(int));
//为堆栈申请一个大小为STACKSIZE
的空间
if(!s.base)
//申请失败
return
(OVERFLOW);
s.top=s.base;
//堆栈为空,头尾指向一个地方
s.stacksize=STACKSIZE;
return
(OK);
}
int
Push(Stack
&s,int
e)
//入堆栈
{
if((s.top-s.base)>s.stacksize)
//如果堆栈满了
{
s.base=(int*)realloc(s.base,(STACKSIZE+STACKINCREMENT)*sizeof(int));
//申请一个STACKSIZE+STACKINCREMENT的空间
if(!s.base)
return(OVERFLOW);
s.top=s.base+s.stacksize;
s.stacksize+=STACKINCREMENT;
}
*s.top++=e;
//头指针指向刚刚入栈的元素
return
(OK);
}
bool
Empty(Stack
s)
//判断堆栈是否为空
{
if(s.base==s.top)
//头尾指向一个地方,堆栈为空
return
true;
else
return
false;
}
int
Pop(Stack
&s)
//出堆栈
{
int
e;
e=*--s.top;//头指针往下移一位
return
e;
//返回出堆栈的数
}
//我语文不好,表达不清楚,这个我学了都忘了很多,不好意思