-1

问题是,给定一个祖先矩阵,作为 1 和 0 的位图,构造相应的二叉树。谁能给我一个关于如何做的想法?我在Stackoverflow找到了一个解决方案,但是这行a[root->data][temp[i]]=1似乎是错误的,没有绑定节点将包含数据 1 到 n。它可能包含,比如 2000,在这种情况下,将没有a[2000][some_column],因为只有 7 个节点,因此矩阵中有 7 行和列。

4

1 回答 1

1

两种方式:

  1. 标准化您的节点值,使它们都从 1 到n. 1, 2, 5000例如,如果您有节点,请将它们设为1, 2, 3. 您可以通过对标签进行排序或散列并保留类似normalized[i] = normalized value of node i. normalized如果您有非常大的标签甚至是文本标签,则可以是地图/哈希表。

  2. 您可能可以为此使用稀疏矩阵,可通过哈希表或集合实现:保留哈希表的哈希表。存储另一个存储您的值H[x]的哈希表。y因此,如果在一个简单的矩阵解决方案中a[2000][5000] = 1,您将使用=> 返回存储在第 2000 行的值H.get(2000)的哈希表=> => 返回您想要的值。H'H'.get(5000)

于 2012-10-19T15:20:08.950 回答