C++用前序遍历创建二叉树
时间: 2024-02-04 19:07:39 浏览: 78
二叉树的前序遍历(C++)
以下是C++用前序遍历创建二叉树的代码示例:
```cpp
#include <iostream>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
TreeNode* buildTree() {
int val;
cin >> val;
if (val == -1) { // -1表示空节点
return NULL;
}
TreeNode* root = new TreeNode(val);
root->left = buildTree();
root->right = buildTree();
return root;
}
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);
}
int main() {
TreeNode* root = buildTree();
cout << "前序遍历结果为:";
preorder(root);
cout << endl;
cout << "中序遍历结果为:";
inorder(root);
cout << endl;
return 0;
}
```
输入格式为一串数字,其中-1表示空节点。例如,输入序列为1 2 -1 -1 3 4 -1 -1 5 -1 -1,则表示如下二叉树:
```
1
/ \
2 3
/ \
4 5
```
输出结果为:
```
前序遍历结果为:1 2 3 4 5
中序遍历结果为:2 1 4 3 5
```
阅读全文