迷途的启木菌 2021-03-26 20:45 采纳率: 50%
浏览 21
已采纳

C++构造二叉树,数据无法传入实参

#include<iostream>

typedef char ElemType;

class TreeNode
{
public:
	ElemType data;
	TreeNode *lchirld, *rchirld;
};

void CreateTree(TreeNode *T)
{
	ElemType pdata = 0;
	std::cin >> pdata;
	if (pdata == '#')
		T = nullptr;
	else
	{
		T = new TreeNode();
		T->data = pdata;
		CreateTree(T->lchirld);
		CreateTree(T->rchirld);
	}
}

void PreOrderTraverse(TreeNode *T)
{
	if (T == nullptr)
		return;
	std::cout << T->data;
	PreOrderTraverse(T->lchirld);
	PreOrderTraverse(T->rchirld);
}


int main(void)
{
	TreeNode *T=nullptr;
	CreateTree(T);
	PreOrderTraverse(T);
	return 0;
}
  • 写回答

3条回答 默认 最新

  • 开发者小峰 2021-03-26 22:57
    关注

    实参的值会传递给形参,但改变形参不会影响实参,给你以下几种方法

    1.T=new TreeNode();改为在主函数中使用

    2.CreateTree函数的参数改为&TreeNode *T

    3.将CreateTree函数的定义改为TreeNode *T CreateTree(),函数最后返回T,主函数中这样调用 T=CreateTree();

    推荐第三种

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看