C语言数据结构的问题

[复制链接]
查看11 | 回复1 | 2011-7-7 12:02:24 | 显示全部楼层 |阅读模式
#include\"stdio.h\"
#include\"stdlib.h\"
#include\"math.h\"
typedefstructSTACK{
int*base;
int*top;
intstacksize;

}sqstack;
typedefstructLNode{
intdata;
structLNode*next;
}LNode,*linklist;
sqstackBuild(sqstack*s){
s-base=malloc(100*sizeof(int));
s-top=s-base;
s-stacksize=100;
return*s;
}
intGetTop(sqstack*s,inte){
if(s-top==s-base)
exit(0);
e=*(s-top-1);
returne;
};
voidpush(sqstack*q,inte){
if(q-top-q-base==q-stacksize)
{
q-base=malloc((q-stacksize10)*sizeof(int));
if(!q-base)exit;
q-top=q-baseq-stacksize;
q-stacksize=10;

}
*q-top=e;
}
voidpop(sqstack*q,inte){
if(q-base==q-top)
{
exit;
}
e=*--q-top;
}
main()
{
inta[256];
intn;
inti=0;
intj=0;
inte;
sqstack*S;
Build(S);
S-top=-1;
printf(\"inputn:\");
scanf(\"%d\",

for(i=0;in;i)
{
printf(\"inputa[%d]\",i);
scanf(\"%d\",a);
push(S,a);
}
while(S-base!=S-top)
{
pop(S,e);
printf(\"%d\",e);
}
}
这段代码,编译连接没有问题,但是一运行就出错,类似的程序写了好几个了,都是类似情况,头疼,求教~我的分只有3分了,也给不了,但求好心的有知人士帮忙解答~小弟谢了!
回复

使用道具 举报

千问 | 2011-7-7 12:02:24 | 显示全部楼层
1sqstack*S;
Build(S);这儿的Build(S)中的S为sqstack*类型。要改变sqstack类型变量的值,你应该传入的为main函数中定sqstackS;再将下面的-访问形式修改,可以省点儿事儿。

别的代码没有看,只看到这儿。所以别的地方有没有问题,你就得自己调试试了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行