新手上路,请大神们多多帮助。为什么创建二叉树时Create的形参为Tnode &T,而不能为PBinTree*T。

smail^^ 2017-11-18 02:34:45
#include "stdafx.h"
#include <stdio.h>
typedef char DataType;

typedef struct node
{
DataType data;
struct node *lchild, *rchild, *parent;
}PBinTree,*Tnode;

void Create(Tnode &T)
{
char ch;
scanf_s("%c", &ch);
if ('#' == ch) //以字符#表示结点元素为空
{
T = NULL;
}
else {
T = new PBinTree();
T->data = ch;
T->parent = NULL;
Create(T->lchild);
Create(T->rchild);
}
return ;
}
void main()
{
PBinTree* T=NULL;
printf("请输入以先序序列创建的二叉树:");
Create(T);
return ;
}
...全文
120 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-11-21
  • 打赏
  • 举报
回复
指针即地址 引用即别名
paschen 版主 2017-11-19
  • 打赏
  • 举报
回复
如果是PBinTree*T,那么你的这个指针本身是按值传递到函数中的,也就是函数中的参数实际只是一个复制品,你只是在为复制品赋值,并没有影响到原指针,而使用引用传递则可以

64,653

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧