按C++实现二叉树



我正在尝试通过c ++创建一个二叉树。 "init_tree"函数读取 CIN 并使用这些字符来构建树。但似乎这个功能是无用的。 谁能告诉我错误在哪里以及如何修复它?

#ifndef STUDY_TREE_H
#define STUDY_TREE_H
#include<iostream>
using namespace std;
struct Node {
char data;
Node *l_child, *r_child;
};
void init_tree(Node* node) {
char ch;
cin >> ch;
if (ch == '#') {
node = NULL;
} else {
node = new Node;
std::cout << ch << std::endl;
node->data = ch;
init_tree(node->l_child);
init_tree(node->r_child);
}
}
int main() {
std::cout << "Input tree, eg: ABC#D" << std::endl;
Node *root = NULL;
init_tree(root);
return 0;
}
#endif //STUDY_TREE_H

您正在修改指针的副本,而不是实际的指针。使用引用。

void init_tree(Node*& node)

最新更新