将十个整数构建成二叉树并输出二叉树的C++代码
时间: 2024-01-07 08:18:13 浏览: 71
以下是将十个整数构建成二叉树并输出二叉树的C++代码:
```c++
#include <iostream>
#include <queue>
using namespace std;
struct Node {
int val;
Node* left;
Node* right;
Node(int x) : val(x), left(NULL), right(NULL) {}
};
Node* buildTree(int arr[], int start, int end) {
if (start > end) return NULL;
int mid = (start + end) / 2;
Node* root = new Node(arr[mid]);
root->left = buildTree(arr, start, mid - 1);
root->right = buildTree(arr, mid + 1, end);
return root;
}
void printTree(Node* root) {
if (root == NULL) return;
queue<Node*> q;
q.push(root);
while (!q.empty()) {
int size = q.size();
for (int i = 0; i < size; i++) {
Node* cur = q.front();
q.pop();
cout << cur->val << " ";
if (cur->left) q.push(cur->left);
if (cur->right) q.push(cur->right);
}
cout << endl;
}
}
int main() {
int arr[] = {1,2,3,4,5,6,7,8,9,10};
Node* root = buildTree(arr, 0, 9);
printTree(root);
return 0;
}
```
代码解析:
- 首先,我们定义了一个二叉树节点结构体 `Node`,包括节点值和左右子节点指针。
- 接着,我们定义了一个递归函数 `buildTree`,用于构建二叉树。在这个函数中,我们取数组的中间值为根节点,然后递归构建左右子树。
- 最后,我们定义了一个函数 `printTree`,用于层次遍历输出二叉树。在这个函数中,我们使用了队列来实现层次遍历,从根节点开始,将每一层的节点按顺序加入队列,然后逐个输出节点的值,并将其左右子节点加入队列中。
- 在主函数中,我们定义了一个包含十个整数的数组,然后调用 `buildTree` 函数构建二叉树,并使用 `printTree` 函数输出二叉树。
阅读全文