二叉链表是一种表示二叉树的数据结构,每个节点包含一个数据域和两个指针,分别指向其左子节点和右子节点。利用二叉链表实现二叉树的先、中、后序遍历可以通过递归实现。

二叉树的先序遍历: 先遍历根节点,然后遍历左子树,最后遍历右子树。

void preorderTraversal(Node* root) {
    if (root == nullptr) {
        return;
    }
    cout << root->data << " ";  // 先遍历根节点
    preorderTraversal(root->left);  // 遍历左子树
    preorderTraversal(root->right);  // 遍历右子树
}

二叉树的中序遍历: 先遍历左子树,然后遍历根节点,最后遍历右子树。

void inorderTraversal(Node* root) {
    if (root == nullptr) {
        return;
    }
    inorderTraversal(root->left);  // 遍历左子树
    cout << root->data << " ";  // 遍历根节点
    inorderTraversal(root->right);  // 遍历右子树
}

二叉树的后序遍历: 先遍历左子树,然后遍历右子树,最后遍历根节点。

void postorderTraversal(Node* root) {
    if (root == nullptr) {
        return;
    }
    postorderTraversal(root->left);  // 遍历左子树
    postorderTraversal(root->right);  // 遍历右子树
    cout << root->data << " ";  // 遍历根节点
}

在以上代码中,Node是二叉链表中的节点类型,data是节点的数据域,leftright是指向左子节点和右子节点的指针

利用二叉链表实现二叉树的先、中、后序遍历。

原文地址: https://www.cveoy.top/t/topic/cpGN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录