求修改代码
  • 板块灌水区
  • 楼主xht_37
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/12/22 18:50
  • 上次更新2023/12/22 21:09:22
查看原帖
求修改代码
1085460
xht_37楼主2023/12/22 18:50
#include <iostream>
int n, tree[1050];
void BuildTree(int node, int l) {
	if (node > n) {
		return;
	}
	tree[node] = l;
	BuildTree(node * 2, l + 1);
	BuildTree(node * 2 + 1, l + 1);
}
void DepthFirstSearch1(int node) {
	std::cout << tree[node] << ' ';
	if (node * 2 <= n) {
		DepthFirstSearch1(node * 2);
	}
	if (node * 2 + 1 <= n) {
		DepthFirstSearch1(node * 2 + 1);
	}
}
void DepthFirstSearch2(int node) {
	if (node * 2 <= n) {
		DepthFirstSearch2(node * 2);
	}
	std::cout << tree[node] << ' ';
	if (node * 2 + 1 <= n) {
		DepthFirstSearch2(node * 2 + 1);
	}
}
void DepthFirstSearch3(int node) {
	if (node > n) {
		return;
	}
	if (node * 2 <= n) {
		DepthFirstSearch3(node * 2);
	}
	if (node * 2 + 1 <= n) {
		DepthFirstSearch3(node * 2 + 1);
	}
	std::cout << tree[node] << ' ';
}
int main() {
	std::cin >> n;
	BuildTree(1, 1);
	DepthFirstSearch1(1);
	std::cout << std::endl << std::endl;
	DepthFirstSearch1(2);
	std::cout << std::endl << std::endl;
	DepthFirstSearch1(3);
	return 0;
}

二叉树的构建与遍历,求指出问题在哪

2023/12/22 18:50
加载中...