使用索引将 BST 值存储到数组中

Storing BST values into an array using index

本文关键字:存储 数组 BST 索引      更新时间:2023-10-16

>我正在尝试创建一个使用 BST 将其值存储在数组中的函数。我有一个全局变量索引 = -1;动态创建的数组,大小为 BST。

int index = -1;
struct treeNode{
int value;
treeNode *left;
treeNode *right;
}
void treeTraversal(treeNode *node, int array[], int index){
index++;
if (node != nullptr){
array[index] = node->value;
treeTraversal(node->left, array, index);
treeTraversal(node->right, array, index);
}
}

它适用于一些具有此类结构的树木

6
5
4

但它不适用于这样的结构

3
2       4
5

数组赋值应该在树遍历的中间

int index = 0;
struct treeNode{
int value;
treeNode *left;
treeNode *right;
}
void treeTraversal(treeNode *node, int array[], int *index){
if (node != nullptr){
treeTraversal(node->left, array, &index);
array[index++] = node->value;
treeTraversal(node->right, array, &index);
}
}

树排序教程