我试图创建一个使用BST将其值存储在数组中的函数。我有一个全局变量index = -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
答案 0 :(得分:0)
数组赋值应位于树遍历的中间
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);
}
}