二叉树的实现与遍历代码
时间: 2023-06-03 14:01:50 浏览: 101
很高兴回答您的问题!二叉树的实现与遍历是一个常见的面试题目。以下是一个基本的二叉树实现和遍历的代码示例:
```
// Define the binary tree node
struct TreeNode {
int val;
struct TreeNode *left, *right;
};
// Insert a new node into a binary tree
void insert(struct TreeNode **node, int val) {
if (!(*node)) {
*node = (struct TreeNode*) malloc(sizeof(struct TreeNode));
(*node)->left = NULL;
(*node)->right = NULL;
(*node)->val = val;
} else {
if (val < (*node)->val) {
insert(&((*node)->left), val);
} else if (val > (*node)->val) {
insert(&((*node)->right), val);
}
}
}
// In-order traversal of a binary tree
void inorderTraversal(struct TreeNode* node) {
if (node) {
inorderTraversal(node->left);
printf("%d ", node->val);
inorderTraversal(node->right);
}
}
// Pre-order traversal of a binary tree
void preorderTraversal(struct TreeNode* node) {
if (node) {
printf("%d ", node->val);
preorderTraversal(node->left);
preorderTraversal(node->right);
}
}
// Post-order traversal of a binary tree
void postorderTraversal(struct TreeNode* node) {
if (node) {
postorderTraversal(node->left);
postorderTraversal(node->right);
printf("%d ", node->val);
}
}
```
以上是一个简单的二叉树实现和遍历的代码示例,希望这能为您提供帮助!
阅读全文