请写一段创建二叉树的代码
时间: 2024-04-26 09:05:24 浏览: 89
好的,我可以为您提供一个创建二叉树的示例代码,请参考:
```c++
#include <iostream>
#include <queue>
using namespace std;
struct Node {
int val;
Node* left;
Node* right;
Node(int x) : val(x), left(nullptr), right(nullptr) {}
};
void createTree(Node* root) {
int val;
cout << "Please enter the value of node (enter -1 to stop): ";
cin >> val;
if (val == -1) {
return;
}
root->val = val;
queue<Node*> que;
que.push(root);
while (!que.empty()) {
Node* cur = que.front();
que.pop();
int left_val, right_val;
cout << "Please enter the value of left child of " << cur->val << " (enter -1 if there is no left child): ";
cin >> left_val;
if (left_val != -1) {
Node* left_child = new Node(left_val);
cur->left = left_child;
que.push(left_child);
}
cout << "Please enter the value of right child of " << cur->val << " (enter -1 if there is no right child): ";
cin >> right_val;
if (right_val != -1) {
Node* right_child = new Node(right_val);
cur->right = right_child;
que.push(right_child);
}
}
}
int main() {
Node* root = new Node(-1);
createTree(root);
return 0;
}
```
这个程序先创建根节点,然后通过 BFS 遍历整个二叉树的每一个节点,根据用户输入的值逐层创建左右子节点。当用户输入 -1 时,停止创建。这个程序可以用于创建任意个数的二叉树。
阅读全文