C语言二叉树遍历代码怎么写

   2025-02-13 7600
核心提示:以下是C语言中二叉树的三种遍历方式(前序遍历、中序遍历和后序遍历)的代码实现:#include stdio.h#include stdlib.htypedef st

以下是C语言中二叉树的三种遍历方式(前序遍历、中序遍历和后序遍历)的代码实现:

#include <stdio.h>#include <stdlib.h>typedef struct Node {    int data;    struct Node* left;    struct Node* right;} Node;// 创建新节点Node* createNode(int data) {    Node* newNode = (Node*)malloc(sizeof(Node));    if(newNode == NULL) {        printf("内存分配失败!\n");        exit(1);    }    newNode->data = data;    newNode->left = NULL;    newNode->right = NULL;    return newNode;}// 前序遍历void preorderTraversal(Node* root) {    if(root != NULL) {        printf("%d ", root->data);  // 先访问根节点        preorderTraversal(root->left);  // 再前序遍历左子树        preorderTraversal(root->right);  // 最后前序遍历右子树    }}// 中序遍历void inorderTraversal(Node* root) {    if(root != NULL) {        inorderTraversal(root->left);  // 先中序遍历左子树        printf("%d ", root->data);  // 再访问根节点        inorderTraversal(root->right);  // 最后中序遍历右子树    }}// 后序遍历void postorderTraversal(Node* root) {    if(root != NULL) {        postorderTraversal(root->left);  // 先后序遍历左子树        postorderTraversal(root->right);  // 再后序遍历右子树        printf("%d ", root->data);  // 最后访问根节点    }}int main() {    // 创建二叉树    Node* root = createNode(1);    root->left = createNode(2);    root->right = createNode(3);    root->left->left = createNode(4);    root->left->right = createNode(5);    // 前序遍历二叉树    printf("前序遍历:");    preorderTraversal(root);    printf("\n");    // 中序遍历二叉树    printf("中序遍历:");    inorderTraversal(root);    printf("\n");    // 后序遍历二叉树    printf("后序遍历:");    postorderTraversal(root);    printf("\n");    return 0;}

这段代码首先定义了一个二叉树节点的结构体 Node,其中包含数据 data、左子节点指针 left 和右子节点指针 right。接着,定义了创建新节点的函数 createNode,用于动态分配内存,并返回新节点。然后,分别实现了三种遍历方式的函数:preorderTraversal(前序遍历)、inorderTraversal(中序遍历)和 postorderTraversal(后序遍历)。最后,在 main 函数中创建了一个二叉树,并分别调用了三种遍历函数,打印出遍历结果。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言