gpt4 book ai didi

c - 递归树遍历,为树的每个叶子返回一个变量

转载 作者:太空宇宙 更新时间:2023-11-04 04:51:09 24 4
gpt4 key购买 nike

我有一个霍夫曼二叉树。我需要向下遍历树直到到达每个叶子,对于每个叶子,我需要“保存”该叶子节点的一个成员,并将所有这些变量保存在树外的数组中。

假设我有这棵树:

            3\65

6\-1

3\70

9\-1

2\66

3\-1

1\67
16\-1

7\68

每片叶子(7/68, 1/67, 2/66, 7/70, 3/65)都有一个叫做“encoding”的成员,它是一个字符串。

(即每个节点都有一个node->left,node->right,和node->encoding)

假设编码如下:

7/68 got an encoding of 0
1/67 got an encoding of 100
2/66 got an encoding of 101
3/70 got an encoding of 110
3/65 got an encoding of 111

我可以相对轻松地遍历树并打印出这些值,但我需要做的是将这些字符串保存在树外的数组中。

我想不出如何将这些保存在树之外。

最佳答案

"save these strings in an array outside of the tree."

评论:你确定一定要存储字符串吗?如果你只存储整数并在递归完成后创建字符串,那就更干净了。

好的,无论哪种方式(并且不泄露源代码)您只需:

  • 在开始递归之前创建一个足够大的 (*) 数组

  • 创建一个指针,用于写入数组的不同部分,将该指针初始化为数组的开头。

将指向该指针的指针作为新的/附加的函数参数提供给您的递归。每次在递归中到达叶子时,你

  • 将你在叶子上找到的内容写入指针
  • 增加指针(你可以这样做,因为你有指向指针的指针

关于c - 递归树遍历,为树的每个叶子返回一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15074344/

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