用任意十个整数将其构建成一个二叉树并输出该二叉树的C++代码
时间: 2024-03-13 07:47:21 浏览: 56
好的,以下是将十个整数构建成二叉树的C++代码:
```cpp
#include <iostream>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
TreeNode* buildTree(int num[], int start, int end) {
if (start > end) {
return NULL;
}
int mid = (start + end) / 2;
TreeNode* root = new TreeNode(num[mid]);
root->left = buildTree(num, start, mid - 1);
root->right = buildTree(num, mid + 1, end);
return root;
}
int main() {
int num[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
TreeNode* root = buildTree(num, 0, 9);
return 0;
}
```
我们可以先定义一个结构体 `TreeNode` 来表示二叉树中的每一个节点,其中包含一个整数值 `val` 和两个指针,分别指向左子节点和右子节点。
然后,我们可以实现一个递归函数 `buildTree` 来构建二叉树。这个函数接受一个整数数组 `num`,以及一个起始下标 `start` 和一个结束下标 `end`,返回一个指向根节点的指针。
在函数内部,我们首先判断起始下标 `start` 是否大于结束下标 `end`,如果是,说明已经没有节点需要构建,返回 `NULL`。否则,我们可以计算出中间节点的下标 `mid`,并以 `num[mid]` 的值作为根节点的值来创建一个新的节点 `root`。
接着,我们可以递归地调用 `buildTree` 函数来构建左子树和右子树,并将返回的指针分别赋值给 `root->left` 和 `root->right`。最后,返回根节点的指针。
在主函数中,我们可以定义一个整数数组 `num`,并将需要构建的十个整数存入其中。然后,调用 `buildTree` 函数来构建二叉树,并将返回的指针赋值给 `root`。
阅读全文