酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

C语言实现二叉树操作:可直接输入元素并完成三序遍历

下面是使用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表示结束输入。 注意:以上代码只是一个示例,并没有包含所有可能的错误处理和完整的功能。在实际应用中,可能需要根据具体需求进行适当修改和完善。 ######[AI写代码神器 | 1672点数解答 | 2024-06-14 17:18:42]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]