c语言实现二叉树加注释
时间: 2023-05-28 16:05:23 浏览: 124
/*
* C语言实现二叉树
* 作者:XXX
* 时间:XXXX年XX月XX日
*/
#include <stdio.h>
#include <stdlib.h>
/* 二叉树的结点结构体 */
typedef struct TreeNode {
int val; // 结点的值
struct TreeNode *left; // 左子树
struct TreeNode *right; // 右子树
} TreeNode;
/* 创建一个新的结点 */
TreeNode *createNode(int val) {
TreeNode *node = (TreeNode *)malloc(sizeof(TreeNode));
node->val = val;
node->left = NULL;
node->right = NULL;
return node;
}
/* 向二叉树中插入一个结点 */
void insert(TreeNode **root, int val) {
if (*root == NULL) {
*root = createNode(val);
} else if (val < (*root)->val) {
insert(&((*root)->left), val);
} else {
insert(&((*root)->right), val);
}
}
/* 中序遍历二叉树 */
void inorderTraversal(TreeNode *root) {
if (root != NULL) {
inorderTraversal(root->left);
printf("%d ", root->val);
inorderTraversal(root->right);
}
}
int main() {
TreeNode *root = NULL;
/* 向二叉树中插入结点 */
insert(&root, 5);
insert(&root, 3);
insert(&root, 8);
insert(&root, 1);
insert(&root, 4);
insert(&root, 7);
insert(&root, 9);
/* 中序遍历二叉树 */
printf("中序遍历二叉树:");
inorderTraversal(root);
printf("\n");
return 0;
}
阅读全文