创建二叉树BiTree CreateBiTree() 按先序次序输入二叉树中结点的值, 返回指向根结点的指针 的代码
时间: 2024-11-15 11:33:23 浏览: 33
创建一个二叉树并按照先序遍历顺序插入节点,可以使用递归的方式来实现。以下是一个简单的C++代码示例:
```cpp
#include <iostream>
// 定义二叉树节点结构体
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
// 先序遍历插入节点的函数
TreeNode* CreateBiTree(int input[], int n) {
if (n == 0) return nullptr; // 如果输入数组为空,返回空指针
// 先处理第一个元素作为根节点
TreeNode* root = new TreeNode(input[0]);
// 递归处理剩余元素
root->left = CreateBiTree(input + 1, n - 1); // 左孩子
root->right = CreateBiTree(input + n - 1, 0); // 右孩子
return root;
}
int main() {
int input[] = {1, 2, 3, 4, 5};
int n = sizeof(input) / sizeof(input[0]);
// 创建并打印二叉树
TreeNode* root = CreateBiTree(input, n);
// ... (这里添加打印或进一步操作二叉树的代码)
delete root; // 别忘了释放内存
return 0;
}
```
这个程序首先检查输入数组是否为空,然后将第一个元素作为根节点,并递归地为左右子节点构造新树。最后,在`main`函数中,你可以通过访问`root`来遍历整个二叉树。
阅读全文