C语言创建二叉树并输出
时间: 2023-07-14 16:11:45 浏览: 109
c语言构建二叉树
以下是一个示例代码,实现了创建二叉树并输出的功能。
```c
#include<stdio.h>
#include<stdlib.h>
//定义二叉树结构体
typedef struct TreeNode {
int data;
struct TreeNode *left;
struct TreeNode *right;
}TreeNode;
//创建二叉树
TreeNode* createTree() {
TreeNode *root;
int val;
scanf("%d", &val); //输入节点的值
if (val == -1) { //如果输入-1,则表示该节点为空
return NULL;
}
root = (TreeNode*)malloc(sizeof(TreeNode)); //申请空间
root->data = val; //赋值节点的值
root->left = createTree(); //递归创建左子树
root->right = createTree(); //递归创建右子树
return root; //返回根节点
}
//前序遍历二叉树
void preOrder(TreeNode *root) {
if (root == NULL) {
return;
}
printf("%d ", root->data); //输出节点的值
preOrder(root->left); //递归遍历左子树
preOrder(root->right); //递归遍历右子树
}
int main() {
TreeNode *root = NULL;
printf("请输入二叉树的节点值(-1表示该节点为空):\n");
root = createTree(); //创建二叉树
printf("前序遍历结果为:\n");
preOrder(root); //前序遍历二叉树
printf("\n");
return 0;
}
```
使用示例:
输入:
```
请输入二叉树的节点值(-1表示该节点为空):
1 2 4 -1 -1 5 -1 -1 3 -1 6 7 -1 -1 -1
```
输出:
```
前序遍历结果为:
1 2 4 5 3 6 7
```
阅读全文