void BinaryTree<T>::creat()
{
this->CreatBiTree(root);
}
template<typename T>
void BinaryTree<T>::CreatBiTree(BinaryTreeNode<T>* str)
{
T value;
cin >> value;
if (value == ""#"")
{
return;
}
else
{
str = new BinaryTreeNode<T>(value, NULL, NULL);
cout << "input the " << str->data << " leftchild:";
CreatBiTree(str->leftChild);
cout << "input the " << str->data << " rightchild:";
CreatBiTree(str->rightChild);
}
}
解决方案:10分
你的参数需要传一个引用:
void BinaryTree<T>::CreatBiTree(BinaryTreeNode<T>* &str)
void BinaryTree<T>::CreatBiTree(BinaryTreeNode<T>* &str)
解决方案:30分
指针传递深度问题,你传*str,在函数里只能改变*str的值,要改变str的值,必须传**str,这就跟你传a什么也改变不了,传*a才可以改变实参值一样