下面是使用C语言编写的二叉树操作的样例代码,包括创建二叉树、插入节点、前序、中序和后序遍历的函数。你可以直接输入元素来创建二叉树并进行遍历。 ```c #include <stdio.h> #include <stdlib.h> struct TreeNode { int data; struct TreeNode* left; struct TreeNode* right; }; // 创建节点 struct TreeNode* createNode(int data) { struct TreeNode* newNode = (struct TreeNode*)malloc(sizeof(struct TreeNode)); if(newNode == NULL){ printf("Memory allocation failed!\n"); return NULL; } newNode->data = data; newNode->left = NULL; newNode->right = NULL; return newNode; } // 插入节点 struct TreeNode* insertNode(struct TreeNode* root, int data) { if(root == NULL){ // 如果树为空,则创建新节点作为根节点 return createNode(data); } if(data < root->data){ // 如果待插入的值小于当前节点,则插入到左子树 root->left = insertNode(root->left, data); } else if(data > root->data){ // 如果待插入的值大于当前节点,则插入到右子树 root->right = insertNode(root->right, data); } return root; } // 前序遍历 void preorderTraversal(struct TreeNode* root) { if(root != NULL){ printf("%d ", root->data); preorderTraversal(root->left); preorderTraversal(root->right); } } // 中序遍历 void inorderTraversal(struct TreeNode* root) { if(root != NULL){ inorderTraversal(root->left); printf("%d ", root->data); inorderTraversal(root->right); } } // 后序遍历 void postorderTraversal(struct TreeNode* root) { if(root != NULL){ postorderTraversal(root->left); postorderTraversal(root->right); printf("%d ", root->data); } } int main() { struct TreeNode* root = NULL; int data; printf("请输入二叉树元素(输入-1结束):\n"); while(1){ scanf("%d", &data); if(data == -1){ break; } root = insertNode(root, data); } printf("前序遍历结果:"); preorderTraversal(root); printf("\n"); printf("中序遍历结果:"); inorderTraversal(root); printf("\n"); printf("后序遍历结果:"); postorderTraversal(root); printf("\n"); return 0; } ``` 使用上述代码,你可以按照提示输入二叉树的元素,并输出相应的遍历结果。输入-1表示结束输入。 注意:以上代码只是一个示例,并没有包含所有可能的错误处理和完整的功能。在实际应用中,可能需要根据具体需求进行适当修改和完善。 [2024-06-14 17:18:42 | AI写代码神器 | 1672点数解答]