请教非完全2叉树重构问题
先是用先序遍历,若节点非空,则输出#,得到一个序列,例如:aaa##aa#aaa#a##,现在根据遍历得到的序列重构二叉树,代码
int CreateTree(Node *node,char *ch)
{
char c;
num++;
c = *ch;
//printf("num: %d\n",num);
if(c == '\0')
return;
else if(c == '#')
{
node = NULL;
}
else
{
int i;
node = MakeNode();
node->Data = c;
for (i=0;i<N;i++)
{
CreateTree(node->ChildPoint[i],ch+1);
}
}
return OK;
}
int main(int argc,char *argv[])
{
num = 0;
Node *newTree;
char *ch = "aaa##aa#aaa#a##";
CreateTree(newTree,ch);
PreOrderTraverse(newTree);
close(readfd);
return 0;
}
请问这样递归建树是正确的吗,怎么出现断错误、~~
[解决办法]
CreateTree的第一个参数要用指针的指针。