建立一颗二叉树 1.输出前序遍历序列。2.输出中续遍历序列。3.输出后续遍历序列
时间: 2023-07-24 08:11:56 浏览: 71
好的,我可以帮你建立一棵二叉树并输出其前序、中序和后序遍历序列。
这里我假设你想建立以下这棵二叉树:
```
1
/ \
2 3
/ \
4 5
```
首先,我们需要定义二叉树的节点结构体:
```cpp
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
```
接下来,我们可以按照以下方法建立这棵二叉树:
```cpp
TreeNode* buildTree() {
// 创建各个节点
TreeNode* node1 = new TreeNode(1);
TreeNode* node2 = new TreeNode(2);
TreeNode* node3 = new TreeNode(3);
TreeNode* node4 = new TreeNode(4);
TreeNode* node5 = new TreeNode(5);
// 建立节点之间的关系
node1->left = node2;
node1->right = node3;
node2->left = node4;
node2->right = node5;
return node1; // 返回根节点
}
```
现在我们已经建立了这棵二叉树,接下来是前序、中序和后序遍历的代码:
```cpp
// 前序遍历
void preOrder(TreeNode* root) {
if (root == NULL) {
return;
}
cout << root->val << " ";
preOrder(root->left);
preOrder(root->right);
}
// 中序遍历
void inOrder(TreeNode* root) {
if (root == NULL) {
return;
}
inOrder(root->left);
cout << root->val << " ";
inOrder(root->right);
}
// 后序遍历
void postOrder(TreeNode* root) {
if (root == NULL) {
return;
}
postOrder(root->left);
postOrder(root->right);
cout << root->val << " ";
}
```
最后,我们可以在 `main` 函数中调用上述函数输出遍历序列:
```cpp
int main() {
TreeNode* root = buildTree();
cout << "前序遍历:";
preOrder(root);
cout << endl;
cout << "中序遍历:";
inOrder(root);
cout << endl;
cout << "后序遍历:";
postOrder(root);
cout << endl;
return 0;
}
```
输出结果如下:
```
前序遍历:1 2 4 5 3
中序遍历:4 2 5 1 3
后序遍历:4 5 2 3 1
```
希望能够帮助到你!