c语言先序遍历的思路构建二叉树
时间: 2023-06-09 18:04:18 浏览: 55
C语言先序遍历构建二叉树的思路如下:
1. 构建一个空的二叉树。
2. 读入一个节点的值,若为 # 则表示该节点为空,否则将该值存入新建的节点中。
3. 若该节点不为空,则递归执行步骤2,构建它的左子树和右子树。
4. 最后返回该二叉树的根节点即可。
具体实现可以参考以下代码:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
char data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode, *Tree;
void createTree(Tree *T) {
char c;
scanf("%c", &c);
if (c == '#') {
*T = NULL;
} else {
*T = (Tree)malloc(sizeof(TreeNode));
(*T)->data = c;
createTree(&((*T)->left));
createTree(&((*T)->right));
}
}
void preOrder(Tree T) {
if (T != NULL) {
printf("%c ", T->data);
preOrder(T->left);
preOrder(T->right);
}
}
int main() {
Tree T;
printf("请输入先序遍历生成二叉树的结点: ");
createTree(&T);
printf("先序遍历结果为: ");
preOrder(T);
return 0;
}
```
希望我的解答能够帮到你,如果还有其他问题,欢迎继续向我提问!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)