问题是,给定一个祖先矩阵,作为 1 和 0 的位图,构造相应的二叉树。谁能给我一个关于如何做的想法?我在Stackoverflow找到了一个解决方案,但是这行a[root->data][temp[i]]=1
似乎是错误的,没有绑定节点将包含数据 1 到 n。它可能包含,比如 2000,在这种情况下,将没有a[2000][some_column]
,因为只有 7 个节点,因此矩阵中有 7 行和列。
问问题
1243 次
1 回答
1
两种方式:
标准化您的节点值,使它们都从 1 到
n
.1, 2, 5000
例如,如果您有节点,请将它们设为1, 2, 3
. 您可以通过对标签进行排序或散列并保留类似normalized[i] = normalized value of node i
.normalized
如果您有非常大的标签甚至是文本标签,则可以是地图/哈希表。您可能可以为此使用稀疏矩阵,可通过哈希表或集合实现:保留哈希表的哈希表。存储另一个存储您的值
H[x]
的哈希表。y
因此,如果在一个简单的矩阵解决方案中a[2000][5000] = 1
,您将使用=> 返回存储在第 2000 行的值H.get(2000)
的哈希表=> => 返回您想要的值。H'
H'.get(5000)
于 2012-10-19T15:20:08.950 回答