-4

例: - 二分木構造で接続されたコンピュータがあります。20 の部屋があり、メイン コンピューターが配置され、そのすべての子ノード (コンピューター) が部屋 1 (レベル 1) にある部屋 0 (レベル 0) から始まるバイナリ ツリーの各部屋をレベルと見なします。各コンピュータには、コンピュータ 1、コンピュータ 2、コンピュータ 3、コンピュータ 4 のように、部屋の場所に応じて番号が付けられます (部屋 2 のコンピュータの最大数は、部屋 1 (レベル 1) の 2 の累乗に等しい)。ルート 12 号室の computer756 にアクセスする場合、最速のアルゴリズムまたは方法は何ですか。

上の画像を例として考えると、レベル 4 には合計 16 のノード (1 から 16 など) があり、2 の 4 乗です。ツリーが巨大な場合 (たとえば 50 レベルのツリー)、番号が付けられたノードにアクセスする最速のアルゴリズムです。レベル 50 で 1,099,511,628,800

4

1 に答える 1

4

私があなたの質問を正しく理解していれば、与えられたルートからth レベルのth ノードへのパスを見つけたいと考えていNます。各レベルのノードには左から右に番号が付けられ、ゼロベースであると仮定します。LNLNL

Nのバイナリ表現を使用する場合、これは簡単です。ビットNのバイナリ数として表します。L次に、これらのビットを最上位から最下位に移動します。0 は左の子に移動する必要があることを意味し、1 は右の子に移動する必要があることを意味します。

たとえば、レベル #3 のノード #3 を検索するには: バイナリのノード番号は です011。根っこから、左、右、右に進みます。

于 2013-09-15T18:05:18.367 に答える