亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c語言二叉樹怎么創建與遍歷

小億
83
2024-04-01 19:38:04
欄目: 編程語言

在C語言中,可以使用結構體來表示二叉樹節點,然后通過遞歸的方式來創建和遍歷二叉樹。

首先定義一個結構體表示二叉樹節點:

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

然后可以定義一個函數來創建二叉樹節點:

struct TreeNode* createNode(int data) {
    struct TreeNode* newNode = (struct TreeNode*)malloc(sizeof(struct TreeNode));
    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 {
        root->right = insertNode(root->right, data);
    }

    return root;
}

最后可以定義遞歸函數來遍歷二叉樹,包括前序遍歷、中序遍歷和后序遍歷:

void preOrder(struct TreeNode* root) {
    if (root == NULL) return;

    printf("%d ", root->data);
    preOrder(root->left);
    preOrder(root->right);
}

void inOrder(struct TreeNode* root) {
    if (root == NULL) return;

    inOrder(root->left);
    printf("%d ", root->data);
    inOrder(root->right);
}

void postOrder(struct TreeNode* root) {
    if (root == NULL) return;

    postOrder(root->left);
    postOrder(root->right);
    printf("%d ", root->data);
}

使用這些函數,可以創建一個二叉樹并進行遍歷操作:

int main() {
    struct TreeNode* root = NULL;

    root = insertNode(root, 5);
    insertNode(root, 3);
    insertNode(root, 8);
    insertNode(root, 2);
    insertNode(root, 4);
    insertNode(root, 7);
    insertNode(root, 9);

    printf("Preorder traversal: ");
    preOrder(root);
    printf("\n");

    printf("Inorder traversal: ");
    inOrder(root);
    printf("\n");

    printf("Postorder traversal: ");
    postOrder(root);
    printf("\n");

    return 0;
}

這樣就可以創建一個二叉樹并進行遍歷操作。

0
横峰县| 东兴市| 恩平市| 镇远县| 巴楚县| 湖南省| 阜新市| 德昌县| 乌拉特后旗| 罗山县| 肃北| 永泰县| 旺苍县| 阳高县| 栖霞市| 普兰县| 龙江县| 鹰潭市| 上蔡县| 铜梁县| 汉中市| 淳化县| 徐水县| 南宫市| 原平市| 中宁县| 潼关县| 隆回县| 镇江市| 灵武市| 金阳县| 永州市| 固阳县| 德昌县| 德清县| 麦盖提县| 新巴尔虎右旗| 青田县| 峨眉山市| 芒康县| 南漳县|