0

我有一棵二叉树,这很奇怪:根是最大的数字,而另一个是递减的……(示例:霍夫曼树)我需要制定一个算法来搜索其中的一个键。

我尝试了很多,但我不知道该怎么做=(

请问有什么建议吗?

例如像这样在此处输入图像描述

4

2 回答 2

6

您向我们展示的图像中的树是一棵霍夫曼树。这棵树内的节点表示该节点下键的出现次数。节点绝对不会为您提供有关可以从该节点找到的密钥的信息。

由于您没有关于子树中键的信息,因此您必须遍历整个树才能找到其中的键。

于 2012-10-28T10:52:04.730 回答
2

您必须检查树中的每个节点。

如果性能很重要,请创建另一个映射、哈希表或二叉搜索树。在您展示的示例中,您正在搜索单个字符,如果您使用 8 位字符集,则可以只使用具有 256 个整数的数组。

于 2012-10-28T10:47:44.783 回答