c++利用先序遍历创建二叉树,并给出相应二叉树的中序遍历结果。
时间: 2024-01-23 08:42:38 浏览: 33
下面是利用先序遍历创建二叉树的 C++ 代码:
```c++
#include <iostream>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x): val(x), left(NULL), right(NULL) {}
};
TreeNode* createTree() {
int val;
cin >> val;
if (val == -1) {
return NULL;
}
TreeNode* root = new TreeNode(val);
root->left = createTree();
root->right = createTree();
return root;
}
void inorderTraversal(TreeNode* root) {
if (!root) {
return;
}
inorderTraversal(root->left);
cout << root->val << " ";
inorderTraversal(root->right);
}
int main() {
cout << "Input the preorder of binary tree (-1 means NULL):" << endl;
TreeNode* root = createTree();
cout << "The inorder of binary tree is:" << endl;
inorderTraversal(root);
cout << endl;
return 0;
}
```
输入先序遍历序列,其中 -1 表示空节点,程序会自动构建对应的二叉树,并输出中序遍历结果。
例如输入序列:1 2 -1 -1 3 4 -1 -1 5 -1 -1,则输出中序遍历结果为 2 1 4 3 5。