根据带虚结点的先序序列创建二叉树。用c++编写
时间: 2024-05-01 12:21:45 浏览: 87
以下是用C语言实现根据带虚结点的先序序列创建二叉树的代码:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
char val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
TreeNode* createTree() {
char c;
scanf("%c", &c);
if (c == '#') {
return NULL;
}
TreeNode* root = (TreeNode*)malloc(sizeof(TreeNode));
root->val = c;
root->left = createTree();
root->right = createTree();
return root;
}
void preOrder(TreeNode* root) {
if (root == NULL) {
return;
}
printf("%c ", root->val);
preOrder(root->left);
preOrder(root->right);
}
int main() {
printf("请输入带虚结点的先序序列(#表示空结点):\n");
TreeNode* root = createTree();
printf("先序遍历结果为:\n");
preOrder(root);
return 0;
}
```
代码中,`createTree`函数用于根据输入的带虚结点的先序序列创建二叉树,`preOrder`函数用于先序遍历二叉树。主函数中先调用`createTree`函数创建二叉树,再调用`preOrder`函数输出先序遍历结果。
阅读全文