注册 登录
编程论坛 C++教室

c++递归创建二叉树,有个参数看不懂(所发程序代码是正确的)

蓝天绿水 发布于 2017-11-03 21:22, 2102 次点击
程序代码:
void CreateBinTree(BinTreeNode<Type> *&t)  //这个*&t表示什么意思啊,如果换成BinTreeNode<Type> *t或BinTreeNode<Type> &t,这个程序都是错的,为什么?
    {  
        Type Item;  
        cin>>Item;  
        if(Item == refvalue)  
            t = NULL;  
        else  
        {  
            t = new BinTreeNode<Type>(Item);  // 首先构造根节点  
            CreateBinTree(t->leftChild);      // 构造左孩子  
            CreateBinTree(t->rightChild);     // 构造右孩子  
        }  
    }  
3 回复
#2
rjsp2017-11-06 08:21
BinTreeNode<Type>*& t
BinTreeNode<Type>*是个指针类型,BinTreeNode<Type>*& 是BinTreeNode<Type>*这个指针类型的引用
指针,引用 是C++最基础的知识,你得先找本C++数看看。

#3
蓝天绿水2017-11-07 19:46
回复 2楼 rjsp
明白了,在创建二叉树中要改变root里面的值,所以不能用指针,指针只能改变指针所指向的值,但是不能改变指针本身
#4
cbbq2017-12-12 10:06
有什么好的方法自学成才嘛
1