C语言顺序栈的问题 15

问题是这样的,我初始化这个栈为了好验证就使栈顶为9到栈底为0的一段数组,但是当我使用push函数操作后,栈顶在push函数中位置为10,但是printf函数中栈的时候栈顶... 问题是这样的,我初始化这个栈为了好验证就使栈顶为9到栈底为0的一段数组,但是当我使用push函数操作后,栈顶在push函数中位置为10,但是printf函数中栈的时候栈顶却为9,这相当于push函数没起作用,不知道哪里出错了
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct
{
int data[MAXSIZE];
int top;
}Seqstack;
Seqstack create_Seqstack()
{
int i;
Seqstack stack;
stack.top=-1;
for(i=0;i<10;i++) //为测试方便初始化;
{
stack.top=stack.top+1;
stack.data[stack.top]=i;
}
return stack;
}
int isEmpty_Seqstack(Seqstack stack)
{
if(stack.top==-1)
return 1;
else
return 0;
}
int isFull(Seqstack stack)
{
if(stack.top==MAXSIZE-1)
return 1;
else
return 0;
}
int push(Seqstack stack, int x)
{
if(stack.top>=MAXSIZE)
printf("OverFlow!%\n");
else
{
stack.top=stack.top+1;
stack.data[stack.top]=x;
}
printf("当前top为%6d\n",stack.top);
printf("当前data为%6d\n",stack.data[stack.top]);
}
void printf_Seqstack(Seqstack stack)
{
printf("当前top为%6d\n",stack.top);
printf("当前data为%6d\n",stack.data[stack.top]);
//while(stack.top!=-1)
//{
//printf("当前top为%6d\n",stack.top);
//printf("当前data内容为%6d\n",stack.data[stack.top]);
//stack.top--;
//}
}
int main()
{
Seqstack stack=create_Seqstack();
push(stack, 1);
printf_Seqstack(stack);
return 0;
}
展开
 我来答
无声名声1165
2014-07-03 · TA获得超过152个赞
知道答主
回答量:122
采纳率:0%
帮助的人:169万
展开全部
for(i = s->top; i>=0; i--) { //遍历栈
printf("%d->",s->data);
}
这里data你定义的是数组名所以
printf("%d->",s->data[i]);
求采纳,求经验,求悬赏
希望能解决您的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式