2012-10-28 38 views
0

我有一个二叉树,这很奇怪:根是最高的数字,而另一个正在减少... (例如:霍夫曼树) 我需要做一个算法搜索其中的密钥。在一个奇怪的二叉树中搜索一个节点

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

任何建议吗?

例如像这样enter image description here

+3

阅读关于堆树(最大具体),这将帮助你 –

+3

听起来像一堆 – Philipp

+0

如果这就是你的树是如何,那么你没有太多的选择,只能尝试树中的每个节点。但是如果你需要这样做,你可能选择了错误的数据结构或误解了需求。 – john

回答

6

image you showed us中的树是霍夫曼树。此树内的节点表示该节点下的密钥出现次数为。节点绝对不会提供有关可以从该节点找到的密钥的信息。

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

2

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

如果性能很重要,可以创建另一个映射,一个散列表或一个二叉搜索树,在这个例子中你展示了你正在寻找一个单一的字符,如果你使用的是256个字符的数组一个8位通道ARSET。