c语言实现二叉树链式存储
时间: 2024-08-13 17:04:58 浏览: 52
在C语言中,二叉树的链式存储通常采用结构体来表示树节点,每个节点包含指向左孩子和右孩子的指针,以及一个用于存储节点值的数据域。以下是一个简单的二叉树链式存储的实现:
```c
// 定义二叉树节点结构
typedef struct TreeNode {
int val; // 节点值
struct TreeNode* left; // 左子节点指针
struct TreeNode* right; // 右子节点指针
} TreeNode;
// 创建新节点
TreeNode* newNode(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 = newNode(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);
}
}
// 其他操作,如删除、查找等,根据需求扩展相应函数
阅读全文