先序遍历创建二叉树c
时间: 2024-01-23 21:12:43 浏览: 75
C#非递归先序遍历二叉树实例
5星 · 资源好评率100%
在先序遍历创建二叉树中,我们需要按照先序遍历的顺序递归创建二叉树的节点。具体步骤如下:
1. 如果当前字符为#或者已经遍历完字符串,则返回NULL。
2. 创建一个新的节点,并将当前字符作为节点的值。
3. 递归创建左子树,即调用CreatBiTree函数。
4. 递归创建右子树,即调用CreatBiTree函数。
5. 返回当前节点的指针。
下面是CreatBiTree函数的代码实现:
```C++
BiTreeNode* CreatBiTree(char* s, int& i, int len) {
if (i >= len || s[i] == '#') {
i++;
return NULL;
}
BiTreeNode* root = new BiTreeNode(s[i]);
i++;
root->left = CreatBiTree(s, i, len);
root->right = CreatBiTree(s, i, len);
return root;
}
```
在中序遍历中,我们需要先遍历左子树,然后访问根节点,最后遍历右子树。具体步骤如下:
1. 如果当前节点为空,则返回。
2. 递归遍历左子树。
3. 访问当前节点。
4. 递归遍历右子树。
下面是InOrder函数的代码实现:
```C++
void InOrder(BiTreeNode* root) {
if (root == NULL) {
return;
}
InOrder(root->left);
cout << root->val;
InOrder(root->right);
}
```
阅读全文