酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

用c语言写二叉树的操作包括它的三序遍历

以下是使用C语言编写的二叉树的基本操作和三序遍历实现: ```c #include <stdio.h> #include <stdlib.h> // 定义二叉树节点结构 struct TreeNode { int data; struct TreeNode* left; struct TreeNode* right; }; // 创建新节点 struct TreeNode* newNode(int data) { struct TreeNode* node = (struct TreeNode*)malloc(sizeof(struct TreeNode)); node->data = data; node->left = NULL; node->right = NULL; return node; } // 插入节点 struct TreeNode* insertNode(struct TreeNode* root, int data) { // 如果根节点为空,则插入的新节点为根节点 if (root == NULL) { return newNode(data); } else { // 根据二叉搜索树的性质,比较节点值并递归插入左子树或右子树 if (data < root->data) { root->left = insertNode(root->left, data); } else { 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; root = insertNode(root, 5); root = insertNode(root, 3); root = insertNode(root, 7); root = insertNode(root, 2); root = insertNode(root, 4); root = insertNode(root, 6); root = insertNode(root, 8); // 遍历二叉树 printf("Preorder traversal: "); preOrderTraversal(root); printf("\n"); printf("Inorder traversal: "); inOrderTraversal(root); printf("\n"); printf("Postorder traversal: "); postOrderTraversal(root); printf("\n"); return 0; } ``` 运行以上代码,将输出: ``` Preorder traversal: 5 3 2 4 7 6 8 Inorder traversal: 2 3 4 5 6 7 8 Postorder traversal: 2 4 3 6 8 7 5 ``` 这就是二叉树的基本操作和三序遍历的实现。 [2024-06-14 17:18:02 | AI写代码神器 | 1534点数解答]

相关提问