二叉树的建立与遍历C语言代码实现
时间: 2024-12-17 12:34:52 浏览: 20
二叉树是一种常见的数据结构,它由节点组成,每个节点最多有两个子节点,通常称为左子节点和右子节点。构建二叉树的基本操作包括插入新节点和搜索已有节点。
以下是简单的二叉查找树(BST)创建和遍历的C语言代码示例:
```c
// 定义二叉树节点结构体
typedef struct TreeNode {
int val; // 节点值
struct TreeNode* left; // 左子节点指针
struct TreeNode* right; // 右子节点指针
} TreeNode;
// 插入节点函数
TreeNode* insertNode(TreeNode* root, int val) {
if (root == NULL) { // 如果根节点为空,创建新节点
return (TreeNode*)malloc(sizeof(TreeNode));
}
if (val < root->val) { // 向左递归
root->left = insertNode(root->left, val);
} else { // 向右递归
root->right = insertNode(root->right, val);
}
return root;
}
// 中序遍历(前序、后序需要相应调整)
void inorderTraversal(TreeNode* root) {
if (root != NULL) {
inorderTraversal(root->left); // 先遍历左子树
printf("%d ", root->val); // 输出当前节点值
inorderTraversal(root->right); // 再遍历右子树
}
}
int main() {
TreeNode* root = NULL;
root = insertNode(root, 50); // 插入节点
insertNode(root, 30);
insertNode(root, 20);
insertNode(root, 40);
insertNode(root, 70);
insertNode(root, 60);
insertNode(root, 80);
printf("Inorder traversal: ");
inorderTraversal(root);
printf("\n");
return 0;
}
```
阅读全文