二叉树程序异常有关问题 急望高手赐教
二叉树程序错误问题 急……望高手赐教啊
我的创建二叉树为什么建立不了呢
void BinTree::CreatNode(int depth,BinTreeNode *t)
{
if(depth> 0)
{
int item;
cout < < "Please input the data: " < <endl;
cin> > item;
t=new BinTreeNode(item);
CreatNode(depth-1,t-> GetLeft());
CreatNode(depth-1,t-> GetRight());
}
}
depth为起深度
------解决方案--------------------
你改变了t的值啊,t只是传递了数值,不会改变父节点的指针。
传入参数应该改为 BinTreeNode **t
*t=new BinTreeNode(item);
CreatNode(depth-1,&t-> GetLeft());
CreatNode(depth-1,&t-> GetRight());
------解决方案--------------------
错了是
*t=new BinTreeNode(item);
CreatNode(depth-1,&((*t)-> GetLeft()));
CreatNode(depth-1,&((*t)-> GetRight()));
我的创建二叉树为什么建立不了呢
void BinTree::CreatNode(int depth,BinTreeNode *t)
{
if(depth> 0)
{
int item;
cout < < "Please input the data: " < <endl;
cin> > item;
t=new BinTreeNode(item);
CreatNode(depth-1,t-> GetLeft());
CreatNode(depth-1,t-> GetRight());
}
}
depth为起深度
------解决方案--------------------
你改变了t的值啊,t只是传递了数值,不会改变父节点的指针。
传入参数应该改为 BinTreeNode **t
*t=new BinTreeNode(item);
CreatNode(depth-1,&t-> GetLeft());
CreatNode(depth-1,&t-> GetRight());
------解决方案--------------------
错了是
*t=new BinTreeNode(item);
CreatNode(depth-1,&((*t)-> GetLeft()));
CreatNode(depth-1,&((*t)-> GetRight()));