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

如何在C++中将preOrdered树键数放入数组中

在C++中将preOrdered树键数放入数组中的方法如下:

  1. 首先,我们需要定义一个树节点的结构,包含节点值和指向左右子节点的指针。
代码语言:txt
复制
struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
  1. 创建一个递归函数,用于将preOrdered树键数放入数组中。函数的参数包括当前节点指针、存放结果的数组和当前数组的索引。
代码语言:txt
复制
void preOrder(TreeNode* root, int arr[], int& index) {
    if (root == nullptr) {
        return;
    }
    arr[index++] = root->val;
    preOrder(root->left, arr, index);
    preOrder(root->right, arr, index);
}
  1. 创建一个主函数,用于调用递归函数并返回结果数组。
代码语言:txt
复制
int* preOrderTraversal(TreeNode* root, int& size) {
    int* arr = new int[size];
    int index = 0;
    preOrder(root, arr, index);
    size = index;
    return arr;
}

这样,我们就可以通过调用preOrderTraversal函数来将preOrdered树键数放入数组中。函数返回的是动态分配的数组指针,需要在使用完毕后手动释放内存。

以下是一个示例的使用方法:

代码语言:txt
复制
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);

    int size = 5;
    int* arr = preOrderTraversal(root, size);

    // 输出结果数组
    for (int i = 0; i < size; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;

    // 释放内存
    delete[] arr;
    delete root->left->left;
    delete root->left->right;
    delete root->left;
    delete root->right;
    delete root;

    return 0;
}

输出结果为:1 2 4 5 3,表示preOrdered树键数放入数组的顺序。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库MySQL版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网平台:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发:https://cloud.tencent.com/product/mobile
  • 腾讯云区块链服务:https://cloud.tencent.com/product/tbaas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/tencent-meta-universe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券