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;
} 展开
#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;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询