二叉树建树问题
建立一个二叉树的代码 有问题无法打印出来 随便写的一个
- C/C++ code
#include <stdio.h>#include <malloc.h>typedef struct BiNode { int data; BiNode* lchild; BiNode* rchild;}BiNode,BiTree;BiTree* CreateTree(BiTree* t){ int data; scanf("%d",&data); if (data!=100) { t=new BiNode(); t->data = data; CreateTree(t->lchild); CreateTree(t->rchild); } return t;}int main(){ BiTree* t = new BiNode(); t = CreateTree(t); printf("the lchild is %d\n",t->lchild->data);//这句不能打印 return 0;}[解决办法]
C语言核心技术(中文版)第十二章,最后一节有一个二叉树的很NB的例子
[解决办法]
你传递个CreateTree函数的指针是一个副本,不会改变你main函数内的指针t的值。所以会出错。看下我的这个帖子吧。
http://topic.csdn.net/u/20120319/15/0751ad00-bad3-481b-9f3a-fed7409cb9cc.html
[解决办法]
CreateTree(&t->lchild);
CreateTree(&t->rchild);
[解决办法]
这个不需要