魔兽世界发光的碎片:c语言问题,可以帮我看这程序那里出错

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/05 03:31:18
void entire_stack(Stack *s,SElem *e)
{
if(isempty(s))
printf("This is a empty stack\n");
else
{
(s->top)--;
*e=s->Elem[s->top];
pop(s,e);
printf("Data:%d\n",*e);
}
push(s,*e);
}
这程序是entire stack (top to base),该如何修改这程序

哦,你这个是显示整个栈的所有元素吧;
entire_stack(Stack *s,SElem *e) 这里的变量用不着这样应该为entire_stack(Stack *s);在里面定义一个变量SElem e;也用不着定义为指针类型.
pop(s,e);那调用的时候应为pop(s,&e);就可以了.
总之你的程序一团糟了,如果想更进一步的话QQ我,115088917...

几点不明白
1 这个程序是用来显示栈里面所有元素的吗?
2 sempty(s)应该是判断stack是否为空,是不是如果空返回TRUE?
3 s->top减了一个1,后面的pop会不会再减掉一个1?
4 push的两个参数分别是什么?为什么弹出来一个元素显示了一下又压回去了?程序用来显示栈顶元素,并且得到栈顶元素的指针?