データ構造(グラフィック、ツリー)[TIL 2021.07.25]


Graph


データ構造のグラフには、複数のポイントからなる複雑なネットワークが表示されます.
グラフィックのポイント:頂点(vertex)、直線:幹線(edge)

グラフィック用語

  • 無方向図(無方向図):頂点と頂点が互いに双方向に接続されています.
    反対に一方向(directed)であり、一方の方向からしか近づくことができず、他方の方向から近づくことができない.
  • 入場回数(入場回数)/出駅回数(出駅回数):頂点と入場する幹線が何本あるかを示します.
  • 隣接(隣接):2つの頂点の間に直接幹線がある場合、2つの頂点は隣接する頂点
  • である.
  • 磁気リング(self-loop)
  • サイクル(cycle):1つの頂点から頂点に戻り、1つのサイクルがあります.
  • 隣接行列


    これはグラフィック用語の隣接行列であり,異なる頂点が隣接しているか否かを表す行列であり,22次元配列の形で表される.
    例(上の図と同じ)
    let a = [
    	[0,0,1],  //A라는 정점이 C라는 정점을 바라본다는 의미
        [1,0,1],  //B라는 정점은 A와 C를 바라본다는 의믜
        [1,0,0]   //C라는 정점이 A라는 정점을 바라본다는 의믜
    ]
    隣接マトリクスは、2つの頂点間に関係があるかどうかを決定するために使用され、主に最も速いパスを探すために使用されます.

    Tree


    資料構造の木は木をひっくり返す様子をしている.図形の複数の構造の無方向図の要素で、1本の枝から周囲に伸びる形状.
    ツリー構造は、1つ以上のデータを下のデータに直接接続する階層化されたデータ構造です.

    ツリー用語のクリア

  • ノード(Node):ツリー構造内のすべての独立データ
  • 本(Root):ツリー構造の始点であるノード
  • 親ノード(Parentノード):2つのノードが上下に接続するときにルートノードに相対的に近い
  • .
  • サブノード(Cildノード)が上下に接続する場合、ルートノードから相対的に離れたノード
  • .
  • リーフ(Leaf):ツリー構造の端点、サブノードのないノード
  • ツリーの深さ、高さ、レベル


  • 深さ(depth):ツリー構造内のルートノードから特定のノードまでの深さ(depth).
    ルートノードのdepthは0(デフォルト)で、次のノードになるたびにdepthは1増加します.

  • レベル(Level):ツリー構造では、同じ深さのノードを組み合わせて、深さが0のルートを表すレベルが1で、深さが1増加するにつれてlevelも1増加します.(既定レベルはルートノード1)同じレベルに並んでいるノードを兄弟ノードと呼びます.
  • -「高さ」(Height)ツリー構造のリーフノードからルートノードまでの高さ(height)を表し、初期ポーリング値は0です.
    ・「サブツリー」(Subtree)のツリー構造から根まで延びる大木の内部で、ツリー構造を有する小木とも呼ばれる.

    Treeでのナビゲーション


    ツリー構造は便利な構造を示すほか,有効な探索にも用いられる.
    代表的なツリー構造はバイナリツリー(binary tree)とバイナリ検索ツリー(binary search tree)である.

    バイナリツリー


    ツリーは最大2つのサブノードで構成されています
    2つのサブノードは、左サブノードと右サブノードに分けられます.
    バイナリ・ツリーには、データの挿入と削除の方法によって、次の3つのタイプがあります.


    バイナリ検索ツリー


    すべての左側の子の値がルートまたは親より小さく、すべての右側の子の値がルートまたは親より大きいフィーチャーがあります.
    バイナリ・ナビゲーション・ツリーがバランシング・ツリーでない場合、ノードは入力値の順に片側に集約される可能性があります(すべてのノードの値がルート・ディレクトリより大きい場合、ノードは右に傾くためです).
    写真で理解するともっと早いです.