首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用C++将树结构数据存储到数组中

将树结构数据存储到数组中是一种常见的数据结构转换操作,可以通过遍历树的方式将树的节点按照一定规则存储到数组中。下面是一个用C++实现的示例代码:

代码语言:txt
复制
#include <iostream>
#include <vector>

struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};

void inorderTraversal(TreeNode* root, std::vector<int>& result) {
    if (root == nullptr) {
        return;
    }
    inorderTraversal(root->left, result);
    result.push_back(root->val);
    inorderTraversal(root->right, result);
}

std::vector<int> treeToArray(TreeNode* root) {
    std::vector<int> result;
    inorderTraversal(root, result);
    return result;
}

int main() {
    // 构造一个示例树
    TreeNode* root = new TreeNode(1);
    root->left = new TreeNode(2);
    root->right = new TreeNode(3);
    root->left->left = new TreeNode(4);
    root->left->right = new TreeNode(5);

    // 将树结构数据存储到数组中
    std::vector<int> array = treeToArray(root);

    // 打印数组内容
    for (int num : array) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    return 0;
}

上述代码中,我们定义了一个树节点结构 TreeNode,包含一个整数值 val,以及左右子节点的指针。inorderTraversal 函数使用中序遍历的方式遍历树,并将节点的值存储到结果数组 result 中。treeToArray 函数调用 inorderTraversal 函数,并返回最终的结果数组。

main 函数中,我们构造了一个示例树,并调用 treeToArray 函数将树结构数据存储到数组中。最后,我们打印数组的内容。

这种将树结构数据存储到数组中的操作在一些算法和数据结构问题中经常用到,例如树的遍历、树的序列化与反序列化等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券