将以上代码在主函数测试输出
时间: 2024-11-20 22:39:57 浏览: 8
首先,我们需要创建一些测试数据,包括先序、中序和后序遍历的结果。这里假设我们有一个整数序列,例如 `[1, 2, 4, 5, 3, 6]`,它按照某种规则(如平衡二叉搜索树)被排序。以下是简单的主函数,用于生成并测试上述二叉树构造函数:
```cpp
#include <iostream>
#include <vector>
// 定义上面的二叉树结构和相关函数
// ...
int main() {
std::vector<int> preorder = {1, 2, 4, 5, 3, 6}; // 先序遍历结果
std::vector<int> inorder = {4, 2, 5, 1, 6, 3}; // 中序遍历结果
std::vector<int> postorder = {4, 5, 2, 6, 3, 1}; // 后序遍历结果
int n = preorder.size();
TreeNode* tree = buildTreePreInorder(preorder.data(), inorder.data(), n); // 用先序和中序构建
std::cout << "Preorder traversal of the constructed binary tree: ";
printInOrder(tree); // 打印先序遍历结果
tree = buildTreePostInorder(postorder.data(), inorder.data(), n); // 用后序和中序构建
std::cout << "\nPostorder traversal of the constructed binary tree: ";
printInOrder(tree); // 打印后序遍历结果
delete tree; // 确保释放内存
return 0;
}
// 辅助函数,用于打印二叉树的中序遍历结果
void printInOrder(TreeNode* node) {
if (node == nullptr) {
return;
}
printInOrder(node->left);
std::cout << node->val << " ";
printInOrder(node->right);
}
```
这个主函数首先构建了两棵二叉树,分别使用先序和后序遍历序列,并输出了它们的中序遍历结果。注意,在实际应用中,你需要确保正确的处理空指针和边界情况。
阅读全文