c语言二叉树的构建和遍历代码
时间: 2024-09-07 12:01:03 浏览: 39
C语言实现二叉树的创建遍历
在C语言中,二叉树是一种常见的数据结构,通常用于组织和查找元素。构建二叉树可以手动插入节点,而遍历则有多种方法,如前序、中序和后序遍历。这里提供一个简单的二叉搜索树(BST)的创建和遍历示例:
**构建二叉搜索树(Insertion):**
```c
typedef struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
TreeNode* insertNode(TreeNode* root, int val) {
if (!root) {
return (TreeNode*)malloc(sizeof(TreeNode));
root->val = val;
root->left = NULL;
root->right = NULL;
} else if (val < root->val) {
root->left = insertNode(root->left, val);
} else {
root->right = insertNode(root->right, val);
}
return root;
}
```
**前序遍历:**
```c
void preOrderTraversal(TreeNode* node) {
if (node != NULL) {
printf("%d ", node->val); // 先访问根节点
preOrderTraversal(node->left); // 然后左子树
preOrderTraversal(node->right); // 最后右子树
}
}
```
**中序遍历:**
```c
void inOrderTraversal(TreeNode* node) {
if (node != NULL) {
inOrderTraversal(node->left); // 先左子树
printf("%d ", node->val); // 再访问根节点
inOrderTraversal(node->right); // 最后右子树
}
}
```
**后序遍历:**
```c
void postOrderTraversal(TreeNode* node) {
if (node != NULL) {
postOrderTraversal(node->left); // 先左子树
postOrderTraversal(node->right); // 再右子树
printf("%d ", node->val); // 最后访问根节点
}
}
```
阅读全文