注册 登录
编程论坛 数据结构与算法

二叉树的一些函数的定义,参数传递的是什么啊

longxingxiu 发布于 2014-05-21 20:53, 881 次点击
比如说建立二叉树函数的定义中 void CreateBiTree(BiTree &T),BiTree &T是什么啊?表示不明白;
还有比如先序遍历函数的定义中void PreOrderTraverse(BiTree T),BiTree T又是什么呢?
程序代码:
void CreateBiTree(BiTree *T)
{
TElemType ch;
/* scanf("%c",&ch); */
ch=str[index++];
if(ch=='#')
*T=NULL;
else
{
*T=(BiTree)malloc(sizeof(BiTNode));
if(!*T)
exit(OVERFLOW);
(*T)->data=ch; /*  生成根结点  */
CreateBiTree(&(*T)->lchild); /*  构造左子树  */
CreateBiTree(&(*T)->rchild); /*  构造右子树  */
}
}



/*  初始条件:  二叉树 T 存在  */
/*  操作结果:  前序递归遍历 T */
void PreOrderTraverse(BiTree T)
{
if(T==NULL)
return;
printf("%c",T->data);/*  显示结点数据,可以更改为其它对结点操作  */
PreOrderTraverse(T->lchild); /*  再先序遍历左子树  */
PreOrderTraverse(T->rchild); /*  最后先序遍历右子树  */
}
3 回复
#2
longxingxiu2014-05-21 22:20
两个问题,希望得到解答。
1、void CreateBiTree(BiTree &T)和main函数中调用此函数的语句CreateBiTree(BiTree &T)对应对嘛?
   好吧,这里参数是怎么个传递法呢?
   是把&T看成一个变量直接传值给取同名的&T是吧?就相当于fun(int a),main函数中调用fun(a)对吗?求指教一下。

2、看到也有的书上面 void CreateBiTree(BiTree *T)的,貌似这样的话就是用指针去指想main函数中的那个T,两个T的含义不同,最后是*T=T。
#3
Frangmuler2014-08-11 15:45
&T是指一个BiTree类型的地址参数。*T是一个BiTree类型的指针参数。
#4
qq7719649042014-08-13 16:45
&T ; &为应用引用符
1