你好,为什么在这段代码中CreateBiTree函数中的参数将引用符号去掉就不能运行了?

#include<stdio.h>
#include<stdlib.h>
typedef struct Node //二叉树结构定义
{
char data;
struct Node *lchild;
struct Node *rchild;
}Bitree;

void CreateBiTree(Bitree *&t) //先序遍历创建二叉树
{
char s;
scanf("%c",&s);
if(s=='#')
t=NULL;
else
{
t=(Bitree *)malloc(sizeof(Node));
t->data=s;
CreateBiTree(t->lchild);
CreateBiTree(t->rchild);
}
}
void Output(Bitree *t) //先序遍历输出二叉树
{
if(t!=NULL)
{
printf("%c",t->data);
Output(t->lchild);
Output(t->rchild);
}
}
void main()
{
Bitree *root;
printf("请以先序遍历依次为二叉树赋值:\n");
CreateBiTree(root);
printf(“输出二叉树:\n”)
Output(root);
}

慕神8447489
浏览 139回答 1
1回答

湖上湖

这个是指针的引用,也就是指针的别名,函数中的修改作用到外面的root去了这样生成的二叉树外面的root才能操控如果去掉&变成传值,函数如何变外面的root也不会变
打开App,查看更多内容
随时随地看视频慕课网APP