为了账号安全,请及时绑定邮箱和手机立即绑定

你好,在以下代码中,建立二叉树的时候函数的参数为什么是这样的?

你好,在以下代码中,建立二叉树的时候函数的参数为什么是这样的?

烙印99 2022-03-21 09:05:21
typedef struct TreeNode {ElemType data;struct TreeNode* LeftChild, * RigthChild;}TreeNode, * BitTree;void CreatePreOrderTree(TreeNode*& T) {ElemType ch;cin >> ch;//AB#D##C##if (ch == '#')//说明这个位置是空结点T = NULL;else {T = new TreeNode;//为结点开辟内存空间T->data = ch;//生成结点CreatePreOrderTree(T->LeftChild);//构建左子树CreatePreOrderTree(T->RigthChild);//构建右子树}}main(){TreeNode* p;CreatePreOrderTree(p);}请问各位 这个void CreatePreOrderTree(TreeNode*& T)函数的参数为什么不是void CreatePreOrderTree(TreeNode* T)这样的,还带了个&,指针p的类型明明是TreeNode*类型的啊 可是为什么到了形参哪里就变成了TreeNode*& T这个样子,这个&是按照引用来理解还是按照地址来理解呢?按照地址来理解的话&和*应该是一对互逆运算符啊。要是按照引用来理解好像也不太对把?
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

struct 结构类型是值类型 所以这里要加& 表示对TreeNode参数的引用
如果把上面的TreeNode 用class来定义就不需要&了
你要先弄清楚值类型和引用类型的区别

查看完整回答
反对 回复 2022-03-23
  • 1 回答
  • 0 关注
  • 226 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信