gpt4 book ai didi

c - 使用数组实现二叉树

转载 作者:行者123 更新时间:2023-11-30 14:39:58 24 4
gpt4 key购买 nike

在硬件中,我被要求使用指针实现二叉树,然后使用 bt 的数组实现。问题是,虽然我知道如何做到这两点,但它们必须共享相同的主文件。我的意思是,数组实现将使用与我用于指针实现的完全相同的代码。这意味着当我引用 insertTree(tree,tree->left) 也必须适用于数组时。我完全迷失了。我的节点是:

    Typedef  struct BTNode{
itemtype data;
Struct BTNode * left;
Struct BTNode * left;
}BTNode;

最佳答案

在“标准”情况下,malloc的结果支持一个新单元,当它变得无用时,您释放

使用数组可以拥有一个BTNode数组,而不是malloc一个新单元,您可以在数组中获得一个空闲条目。因为单元可以以任何顺序先验地获取/释放,所以您也可以链接空闲单元,因此当单元被释放时,它会被重新引入到与数组关联的空闲列表中

因此,只需修改 malloc/free 调用即可使用数组或不使用数组

<小时/>

注意:

Typedef  struct BTNode{
itemtype data;
Struct BTNode * left;
Struct BTNode * left;
}BTNode;

你的意思是

typedef  struct BTNode{
itemtype data;
struct BTNode * left;
struct BTNode * right;
} BTNode;

关于c - 使用数组实现二叉树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55794033/

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