私はおそらく大きな根付きツリー構造を持っており、それはツリーの葉の量であり、1より大きい次数を持つツリー内のノードの量、つまりルートノードと内部ノードであるX * Y
行列に変換したいと考えています。マトリックスは次のように入力する必要があります。X
Y
M i、j = {0
葉i
に祖先があるj
場合は1、それ以外の場合は1
たとえば、次のツリー:
--A
/
1 B
/ \ /
/ 3
/ \
0 C
\
\ --D
\ /
2
\--E
このマトリックスに変換されます:
0 1 2 3
A T T F F
B T T F T
C T T F T
D T F T F
E T F T F
木はかなり大きくなる可能性があるので(おそらく約100,000枚の葉)、葉のノードごとに木を横断するよりも賢くて速い方法があるかどうか疑問に思いました。ある種のアルゴリズムがこの問題のどこかにあるように感じますが、私はまだそれを理解していません。多分誰かが助けることができますか?
私のアプリケーションでは、ツリーは大きな系統発生階層を表しているため、バランスが取れておらず、3つ以上の子を持つノードが存在する可能性があります。