一个广义表的问题

kueixing 2001-12-08 11:00:30
在<<数据结构--C++描述>>一书中关于广义表的部分,书中给出的
建立广义表的成员函数CreatList()的代码我在VC中调试总出现很多错误,希望高手帮我指出.

int GenList::sever(char *str1,char *hstr1)
{
char ch=str1[0];
int n=strlen(str1);
int i=0,k=0;
while(i<n&&(ch!=','||k!=0))
{
if(ch=='(') k++;
else if(ch==')') k--;
i++;
ch=str1[i];
}
if(i<n)
{
strncpy(hstr1,str1,i-1);
strncpy(str1,str1+i,n-i);
return 1;
}
else if(k!=0) return 0;
else{
strcpy(hstr1,str1); str1=0;
return 1;
}
}
int GenList::CreateList(GenListNode *ls,char *s)
{
char *sub,*hsub;
int tag;
ls=new GenListNode();
ls->utype=HEAD;ls->value.ref=1;
char *s1="()";
if(strlen(s)==0||strcmp(s,s1))ls->tlink=NULL;
else
{
strncpy(sub,s+1,strlen(s)-2);
GenListNode *p=ls;
while(strlen(sub)!=0)
{
p=p->tlink=new GenListNode();
if(sever(sub,hsub))
{
if((hsub[0]!='(')&&(hsub[0]!='''))
{
p->utype=INTGR;
p->value.intgrinfo=atoi(hsub);
}
else
if((hsub[0]!='(')&&(hsub[0]=='''))
{
p->utype=CH;
p->value.charinfo=hsub[1];
}
else
{
p->utype=LST;
CreateList(p->value.hlink,hsub);
}
}
else return 0;
}
p->tlink=NULL;
}
return 1;
}
...全文
107 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
kueixing 2001-12-09
  • 打赏
  • 举报
回复
我加分,只要有人帮我

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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