gpt4 book ai didi

c - 导航基本二叉树

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:08 25 4
gpt4 key购买 nike

所以我需要为我的应用程序创建一个基本的二叉树,但我在概念化如何“导航”时遇到了麻烦,即使在生成过程中也是如此。

当然每个节点都有一个地址,并通向另外两个节点,这两个节点分别具有正值和负值。我的问题是,如果我想使用循环创建树,我该怎么做?在第一次迭代中将有两个节点,在第三次迭代中将有四个,依此类推 - 我如何在推进循环之前遍历它们的每个地址?

    for(int i=1;i<=5;i++){
(*currentAddress).value = i;
(*currentAddress).positive = i;
(*currentAddress).negative = i*-1;
//update current address
}

我是否必须在每次迭代中都使用 BFS 并一直添加节点直到创建 (2^n-1) 个节点?

最佳答案

您实际上需要左右指针,对吧?然后你可能想使用递归。例如(用一些随机的语言):

function Node* MakeNode(value, limit) {
Node* node = new Node();
(*node).value = value;
// don't create any more children once we get to the depth limit.
if (value < limit) {
(*node).positive = MakeNode(value + 1);
(*node).negative = MakeNode(value - 1);
}
return node;
}

// create a 5 deep tree
MakeNode(0, 5);

关于c - 导航基本二叉树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40119286/

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