请生成C语言二叉树代码
时间: 2023-11-25 21:05:00 浏览: 41
以下是一个二叉树的C语言代码,包括创建二叉树、遍历二叉树等基本操作:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结点类型
typedef struct TreeNode {
int data;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 创建二叉树
TreeNode* createTree() {
TreeNode* root = NULL;
int data;
scanf("%d", &data);
if (data != -1) {
root = (TreeNode*)malloc(sizeof(TreeNode));
root->data = data;
root->left = createTree();
root->right = createTree();
}
return root;
}
// 前序遍历
void preOrder(TreeNode* root) {
if (root != NULL) {
printf("%d ", root->data);
preOrder(root->left);
preOrder(root->right);
}
}
// 中序遍历
void inOrder(TreeNode* root) {
if (root != NULL) {
inOrder(root->left);
printf("%d ", root->data);
inOrder(root->right);
}
}
// 后序遍历
void postOrder(TreeNode* root) {
if (root != NULL) {
postOrder(root->left);
postOrder(root->right);
printf("%d ", root->data);
}
}
int main() {
TreeNode* root = createTree();
printf("前序遍历:");
preOrder(root);
printf("\n中序遍历:");
inOrder(root);
printf("\n后序遍历:");
postOrder(root);
printf("\n");
return 0;
}
```
以上代码实现了二叉树的创建和三种遍历方式,通过输入一组数据,即可构建出一颗二叉树,并输出其前序、中序、后序遍历结果。请注意,以上仅为二叉树的基本操作,实际应用中可能需要更多的功能和优化。