gpt4 book ai didi

c - 我有一个二叉搜索树,我想将节点复制到一个数组中序(递归函数)

转载 作者:行者123 更新时间:2023-12-02 02:35:18 25 4
gpt4 key购买 nike

嗨,我有一个 BST 二叉搜索树

typedef struct Treenode *SearchTree;
struct Treenode
{
int Element;
SearchTree Left;
SearchTree Right;
};

我想创建一个函数

FillArray(int sizeoftree, tree, int array[])

我想用一个数组复制数组中树的节点。我怎样才能做到这一点?以下代码不起作用。我试过:

int FillArray(int a,SearchTree T,int arr[])
{
if (T==NULL)
{
return 0;
}
else
{
FillArray(a,T->Left,arr);
arr[a]=T->Element;
a++;
FillArray(a,T->Right,arr);
}
}

最佳答案

您的问题是您的函数 FillArray 仅修改其参数 a,这对其调用者不可见,因为在 C 中传递的参数是按值传递的。您将需要一些方法让递归调用告诉 arr 中要添加元素的位置。一个简单的方法是添加一个参数,比如 index,它给出 arr 中要添加元素的第一个索引,然后从 返回FillArray 添加的元素数,以便您可以在递归调用 FillArray 后正确更新 index 并返回添加的元素总数。

关于c - 我有一个二叉搜索树,我想将节点复制到一个数组中序(递归函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2089610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com