堆栈问题

鱼弦
全栈领域优质创作者
博客专家认证
2014-03-04 05:50:29
建立字符堆栈、入栈、出栈、置空等等操作出现问题,请大神帮忙解决,有图:



另附代码:
#include<stdio.h>
#include<stdlib.h>
#define maxsize 1024

typedef struct{
int data[maxsize];
int top;
}sqstack;

void setNUll(sqstack *s)
{
s->top=-1;
}

int stack_Empty(sqstack *s)
{
if(s->top<0)return 1;
else
return 0;
}

int GetTop(sqstack *s)
{
if(stack_Empty(s))
{
printf("\n 栈已空!\n");
return NULL;
}
else
return (s->data[s->top]);
}

int Push(sqstack *s,int x)
{
if(s->top==maxsize-1)
{
printf("栈已满!");
return NULL;
}

else
{
s->top++;
s->data[s->top]=x;
//s->data[top++]=x
return 1;
}
}

int pop(sqstack *s)
{
if(stack_Empty(s))
{
printf("栈已空~");
return NULL;
}
else
s->top--;
return (s->data[s->top+1]);
}

int main()
{
int i;
char ch;
sqstack *q,*s;

s=(sqstack *)malloc(sizeof(sqstack));
while(1)
{
printf("\n 请选择:");

printf("\n(1) 建字符栈:");
printf("\n(2) 取栈顶节点:");
printf("\n(3) 入栈操作:");
printf("\n(4) 出栈操作:");
printf("\n(5) 结束!\n");
//ch=getchar();
scanf("%c",&ch);
switch(ch)
{
case '1':
setNUll(s);
printf("\n 请输入字符栈(小于20字符),并以#字符结束.\n");
//ch=getchar();
scanf("%c",&ch);
while(ch!='#')
{
s->data[s->top]=ch;
scanf("%c",&ch);
//ch=getchar();
}
if(s->top>maxsize-1)
{
printf("请输入字符数大于20个字符,请重新建字符栈~");
}
else {
printf("已建立字符栈!\n");
i=maxsize-1;
printf("字符栈中的字符是:");
while(i>0)
{
putchar(s->data[i--]);
}
}
break;

case '2':
printf("取出字符为:");
putchar(GetTop(s));
break;

case '3':
printf("\n请输入入栈的字符:\n");
// ch=getchar();
scanf("%c",&ch);
if(Push(s,ch)!=NULL)
{
printf("\n 入栈后的字符栈为:\n");
i=0;
while(i<=s->top)
{
putchar(s->data[i++]);
}
}
break;

case '4':
ch=pop(s);
if(ch!=NULL)
{
printf("出栈的字符为:");
putchar(ch);
printf("\n出栈后的字符为:\n");
i=0;
while(i<=s->top)
{
putchar(s->data[s->top]);
}

}
break;

case '5':return ;
}

}
}

不知道哪出问题了~郁闷中。。。

...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
derekrose 2014-03-04
  • 打赏
  • 举报
回复
什么时候会出问题
鱼弦 2014-03-04
  • 打赏
  • 举报
回复
引用 1 楼 derekrose 的回复:
debug??
是呀~但是现在还没解决、菜鸟苦逼了
derekrose 2014-03-04
  • 打赏
  • 举报
回复
debug??

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧