以下是常见的几种树算法的C语言实现:
- 二叉树的遍历
定义二叉树节点结构类型:
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
前序遍历:
void preorder_traversal(TreeNode* root) {
if (!root) return;
printf("%d ", root->val);
preorder_traversal(root->left);
preorder_traversal(root->right);
}
中序遍历:
void inorder_traversal(TreeNode* root) {
if (!root) return;
inorder_traversal(root->left);
printf("%d ", root->val);
inorder_traversal(root->right);
}
后序遍历:
void postorder_traversal(TreeNode* root) {
if (!root) return;
postorder_traversal(root->left);
postorder_traversal(root->right);
printf("%d ", root->val);
}
- 二叉查找树
定义二叉查找树节点结构类型:
typedef stru