先序遍历二叉树c++
时间: 2023-08-29 11:11:40 浏览: 122
先序遍历二叉树是一种遍历方式,它的顺序是先访问根节点,然后递归地先序遍历左子树,最后递归地先序遍历右子树。以下是先序遍历二叉树的示例代码:
```python
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
def preorder_traversal(node):
if node is not None:
print(node.data, end=' ')
preorder_traversal(node.left)
preorder_traversal(node.right)
# 创建一个示例二叉树
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
# 先序遍历二叉树
print
相关问题
二叉树先序遍历代码c++
以下是二叉树先序遍历的 C++ 代码:
```c++
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
void preorderTraversal(TreeNode* root) {
if (root == NULL) {
return;
}
cout << root->val << " ";
preorderTraversal(root->left);
preorderTraversal(root->right);
}
```
这里定义了一个二叉树节点的结构体 `TreeNode`,包含值 `val`、左子节点 `left` 和右子节点 `right`。`preorderTraversal` 函数实现了二叉树的先序遍历,先输出当前节点的值,再遍历左子树,最后遍历右子树。在遍历空节点时,直接返回。
先序遍历创建二叉树c++
先序遍历创建二叉树是一种常用的二叉树构建方法,它是通过先序遍历序列来构建二叉树的。下面是先序遍历创建二叉树的步骤:
1. 定义二叉树节点结构体:
```cpp
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
```
2. 创建一个递归函数来构二叉树:
```cpp
TreeNode* buildTree(vector<int>& preorder, int& index) {
if (index >= preorder.size() || preorder[index] == -1) {
index++;
return nullptr;
}
TreeNode* root = new TreeNode(preorder[index]);
index++;
root->left = buildTree(preorder, index);
root->right = buildTree(preorder, index);
return root;
}
```
3. 调用构建函数来创建二叉树:
```cpp
TreeNode* createTree(vector<int>& preorder) {
int index = 0;
return buildTree(preorder, index);
}
```
这样,你就可以通过传入先序遍历序列来创建一个二叉树了。
阅读全文