c语言代码建立一棵二叉树,并实现前序、中序和后序遍历这棵二叉树。
时间: 2023-12-01 08:28:56 浏览: 75
好的,我可以回答这个问题。建立一棵二叉树的代码如下:
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
struct TreeNode* createTree(int val) {
struct TreeNode* root = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->val = val;
root->left = NULL;
root->right = NULL;
return root;
}
struct TreeNode* insert(struct TreeNode* root, int val) {
if (root == NULL) {
return createTree(val);
}
if (val < root->val) {
root->left = insert(root->left, val);
} else {
root->right = insert(root->right, val);
}
return root;
}
然后,进行前序遍历代码如下:
void preorder(struct TreeNode* root) {
if (root == NULL) {
return;
}
printf("%d ", root->val);
preorder(root->left);
preorder(root->right);
}
中序遍历代码如下:
void inorder(struct TreeNode* root) {
if (root == NULL) {
return;
}
inorder(root->left);
printf("%d ", root->val);
inorder(root->right);
}
后序遍历代码如下:
void postorder(struct TreeNode* root) {
if (root == NULL) {
return;
}
postorder(root->left);
postorder(root->right);
printf("%d ", root->val);
}
希望这个回答对您有所帮助。如果您还有其他问题,请继续提问。
阅读全文