これはアルゴリズム理論からの簡単な質問です。
それらの違いは、1つのケースではルートの数と、ノードと具象ノードとの間の最短経路上の他の数のエッジの数を数えることです。
どっち?
これはアルゴリズム理論からの簡単な質問です。
それらの違いは、1つのケースではルートの数と、ノードと具象ノードとの間の最短経路上の他の数のエッジの数を数えることです。
どっち?
回答:
深度と高さがノードのプロパティであることを学びました:
ノードの深さは、ノードからツリーのルートノードまでのエッジの数です。
ルートノードの深さは0になります。
ノードの高さは、ノードからリーフまでの最長パス上のエッジの数です。
葉ノードの高さは0になります。
木の特性:
高木のは、そのルート・ノードの高さとなり
、または同等に、その最も深いノードの深さ。
ツリーの直径(または幅)は、2つのリーフノード間の最長パス上のノード数です。以下のツリーの直径は6ノードです。
木の高さと深さは等しい...
しかし、ノードの高さと深さは等しくありません...
高さは、指定されたノードから最も深い葉までトラバースすることによって計算されます。
深さは、ルートから指定されたノードへのトラバーサルから計算されます。
コーメンらによると。アルゴリズムの概要(付録B.5.3)では、ツリーTのノードXの深さは、TのルートノードからXへの単純なパスの長さ(エッジの数)として定義されます。ノードYの高さはYからリーフへの最下向きの単純なパス上のエッジの数 ツリーの高さは、ルートノードの高さとして定義されます。
単純なパスは、頂点が繰り返されないパスであることに注意してください。
高さの木はの最大深さに等しいツリー。ノードの深さとノードの高さは必ずしも同じではありません。Cormenらの第3版の図B.6を参照してください。これらの概念の説明については、
エッジではなくノード(頂点)を数えるように要求する問題が発生することがあります。そのため、試験または就職の面接中にノードまたはエッジを数える必要があるかどうか不明な場合は、説明を求めてください。
簡単な答え:
深さ:
1. ツリー:ツリーのルートノードからリーフノードまでのエッジ/アークの数は、ツリーの深さと呼ばれます。
2. ノード:ルートノードからそのノードまでのエッジ/アークの数は、そのノードの深度と呼ばれます。
私はCSの学部生で、OpenDSAやその他のオープンソースの教科書をどんどん使っているので、この投稿を作成したかったのです。最高評価の回答から、高さと深さの教え方が世代ごとに変わったようです。私はこれを投稿しています。これにより、この不一致が存在し、バグが発生しないことを誰もが知っていますプログラム!ありがとう。
n 1、n 2、...、n kがツリー内のノードのシーケンスであり、n iが1 <= i <k のn i +1の親である場合、このシーケンスはnからのパスと呼ばれます。1からn k。パスの長さはk−1です。ノードRからノードMへのパスがある場合、RはMの祖先であり、MはRの子孫です。したがって、ツリー内のすべてのノードはツリーのルートの子孫であり、ルートは祖先ですすべてのノードの。ツリーのノードMの深さは、ツリーのルートからMまでのパスの長さです。ツリーの高さは、ツリーの最も深いノードの深さよりも1つ大きくなります。深さdのすべてのノードは、ツリーのレベルdにあります。ルートはレベル0の唯一のノードであり、その深さは0です。
図7.2.1:二分木。ノードAがルートです。ノードBとCはAの子です。ノードBとDは一緒にサブツリーを形成します。ノードBには2つの子があります。左の子は空のツリーで、右の子はDです。ノードA、C、およびEはGの祖先です。ノードD、E、およびFはツリーのレベル2を構成します。ノードAはレベル0です。AからC、E、Gまでのエッジは、長さ3のパスを形成します。ノードD、G、H、およびIは、葉です。ノードA、B、C、E、およびFは内部ノードです。私の深さは3です。この木の高さは4です。