温馨提示×

C语言中怎么用switch函数实现二叉树

小亿
87
2024-05-30 09:32:14
栏目: 编程语言

在C语言中,可以使用switch函数实现二叉树的遍历和操作。下面是一个简单的示例代码,展示如何使用switch函数实现二叉树的遍历:

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node* left;
    struct Node* right;
};

void preOrderTraversal(struct Node* root) {
    if (root == NULL) {
        return;
    }
    
    printf("%d ", root->data);
    preOrderTraversal(root->left);
    preOrderTraversal(root->right);
}

void inOrderTraversal(struct Node* root) {
    if (root == NULL) {
        return;
    }
    
    inOrderTraversal(root->left);
    printf("%d ", root->data);
    inOrderTraversal(root->right);
}

void postOrderTraversal(struct Node* root) {
    if (root == NULL) {
        return;
    }
    
    postOrderTraversal(root->left);
    postOrderTraversal(root->right);
    printf("%d ", root->data);
}

int main() {
    struct Node* root = (struct Node*)malloc(sizeof(struct Node));
    root->data = 1;
    
    root->left = (struct Node*)malloc(sizeof(struct Node));
    root->left->data = 2;
    
    root->right = (struct Node*)malloc(sizeof(struct Node));
    root->right->data = 3;
    
    root->left->left = NULL;
    root->left->right = NULL;
    
    root->right->left = NULL;
    root->right->right = NULL;
    
    printf("Preorder traversal: ");
    preOrderTraversal(root);
    printf("\n");
    
    printf("Inorder traversal: ");
    inOrderTraversal(root);
    printf("\n");
    
    printf("Postorder traversal: ");
    postOrderTraversal(root);
    printf("\n");
    
    return 0;
}

在上述代码中,我们定义了一个简单的二叉树结构体Node,并使用switch函数实现了前序、中序和后序遍历。在main函数中,我们创建了一个包含3个节点的二叉树,并进行了三种遍历方式的输出。您可以根据需要对代码进行修改和扩展。

0