请用c语言写一段创建二叉树的代码
时间: 2023-11-21 19:04:17 浏览: 85
以下是使用 C 语言创建二叉树的示例代码:
#include <stdio.h>
#include <stdlib.h>
//定义二叉树结点
typedef struct TreeNode{
int data; //结点数据
struct TreeNode *left; //指向左子树的指针
struct TreeNode *right; //指向右子树的指针
}TreeNode;
//将数据插入二叉树
TreeNode* insert(TreeNode *node, int data){
//如果树为空,直接创建新结点并返回
if(node == NULL){
node = (TreeNode*)malloc(sizeof(TreeNode));
node->data = data;
node->left = NULL;
node->right = NULL;
return node;
}
//如果要插入的数据小于结点数据,则插入到左子树
if(data < node->data){
node->left = insert(node->left, data);
}
//如果要插入的数据大于等于结点数据,则插入到右子树
else{
node->right = insert(node->right, data);
}
return node;
}
//中序遍历二叉树
void inorderTraversal(TreeNode *node){
if(node != NULL){
inorderTraversal(node->left);
printf("%d ", node->data);
inorderTraversal(node->right);
}
}
int main(){
//初始化二叉树为空
TreeNode *root = NULL;
//插入数据
root = insert(root, 5);
root = insert(root, 2);
root = insert(root, 8);
root = insert(root, 1);
root = insert(root, 3);
//中序遍历并输出数据
printf("Inorder Traversal: ");
inorderTraversal(root);
return 0;
}
阅读全文