对上面代码在主函数测试输出
时间: 2024-11-20 08:39:13 浏览: 8
为了测试上述代码,你需要首先准备两个有序的序列,一个是先序遍历(`preOrder`),另一个是中序遍历(`inOrder`)或后序遍历(`postOrder`)。这里假设你已经有了这些数据,然后你可以编写一个简单的`main`函数来进行测试。
以下是一个基本的`main`函数示例:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// ... (保留之前定义的TreeNode和构建函数)
int main() {
// 示例数据,这里需要替换为你实际的先序和中序(或后序)
vector<int> preOrder = {1, 2, 4, 5, 3};
vector<int> inOrder = {4, 2, 5, 1, 3};
// 构建二叉树
auto tree = buildTreeFromPreInOrder(preOrder, inOrder, 0, preOrder.size() - 1); // 或者用buildTreeFromPostInOrder
// 打印二叉树
cout << "Binary Tree constructed from Preorder and Inorder:\n";
printTree(tree);
// 省略部分,因为这里我们只展示了先序和中序构建,后序同理,可以添加类似的部分来打印后序构建的树
return 0;
}
// 定义辅助函数,用于递归打印树
void printTree(TreeNode<T>* node) {
if (node == nullptr)
return;
printTree(node->left);
cout << node->val << " ";
printTree(node->right);
}
```
当你运行这个`main`函数时,它会根据提供的先序和中序(或后序)序列构建树,并输出结果。请注意,如果数据量大,这种直接打印可能会不太直观,你可能想用图形化的方式展示树结构。
阅读全文