C++ 转换为完整的BST函数

C++ 转换为完整的BST函数,c++,recursion,binary-search-tree,C++,Recursion,Binary Search Tree,我需要将bst中的数据保存到一个已排序的数组中,然后,ConvertToCompleteBST函数清除当前树,并通过在每次调用中插入中间值,使用数组递归地重新插入值 InsertRecursively(data_array,size); 例如,如果数组是 [5 7 10 12 16 18 30] 然后递归地插入([571012161830],7)首先被调用 中间是12因此12是第一个插入到树中的。然后在递归调用中,它将执行相同的操作,但对于 InsertRecursively([5 7 10]

我需要将bst中的数据保存到一个已排序的数组中,然后,
ConvertToCompleteBST
函数清除当前树,并通过在每次调用中插入中间值,使用数组递归地重新插入值

InsertRecursively(data_array,size);
例如,如果数组是 [5 7 10 12 16 18 30]

然后递归地插入([571012161830],7)首先被调用

中间是12因此12是第一个插入到树中的。然后在递归调用中,它将执行相同的操作,但对于

InsertRecursively([5 7 10],3)
InsertRecursively([16 18 30],3)
然后,
insertrecursive([5 7 10],3)
将导致插入节点7和另外两个递归调用

递归插入([5],1)
>导致插入节点5

递归插入([10],1)
>导致插入节点10

当size为1时,它将停止递归调用


我不知道如何实现insertrecursive函数

您的bst数据结构是什么样子的?您遇到问题的是递归部分还是终端部分?我遇到了递归部分的问题