Code Bye

为什么,指针参数带入后没有返回值(数据结构中的)

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)
解决方案:30分
指针传递深度问题,你传*str,在函数里只能改变*str的值,要改变str的值,必须传**str,这就跟你传a什么也改变不了,传*a才可以改变实参值一样

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明为什么,指针参数带入后没有返回值(数据结构中的)