[TIL] Graph/Tree/BST


Graph


コンピュータのグラフィックは数学のx,y軸があるグラフィックとは異なる.
頂点と幹線で構成されています.

ここでは、それぞれの番号が頂点であり、その頂点を結ぶ線が幹線である.
グラフは通常、ポータルサイトの検索エンジン、SNS、ナビなどで使われる資料構造型です.
頂点:ソウル、大田、釜山
幹線:ソウル-大田、大田-釜山、釜山-ソウル
ソウル、大田(テジョン)、釜山(プサン)はつながっていると言っても過言ではない.
幹線は2つの特定の都市がつながっていることしか教えてくれないので、他の情報は何もありません.重み付けされていない(接続強度)現在のグラフィックを非重み付けグラフィックと呼びます.
頂点:ソウル、大田、釜山
幹線:ソウル-140 km-大田、大田-200 km-釜山、釜山-325 km-ソウル
都市の距離を加えると重み付け図と呼ばれます.
この重み付け図の拡張は,ナビゲーションで使用される資料構造と類似するために数百万個の頂点(アドレス)と幹線を増加させる必要がある.
グラフィック用語タイプ

  • 無向図:ソウルから釜山に行くこともできるし、逆に釜山からソウルに行くこともできる.しかし、一方向(directed)グラフを採用すれば、ソウルから釜山に行くことができるが、釜山からソウルに行くことは不可能(または逆)だ.2つの場所が1本の一方通行につながっている場合は、一方通行の幹線で表すことができます.

  • 入場回数/入場回数:1つの頂点(入場幹線)に入る幹線と入場(駅を出る幹線)に入る幹線の数を表します.

  • 隣接:2つの頂点の間に直線がある場合、2つの頂点は隣接する頂点です.

  • 磁気リング(self loop):頂点から入る直線が直接自身に入ると、磁気リングがあることを示します.他の頂点を通らないのが特徴です.

  • ≪ループ|Loop|emdw≫:1つの頂点から開始して頂点に戻ることができる場合は、ループが存在することを示します.
  • 隣接行列


    2つの頂点を直接接続する幹線がある場合、この2つの頂点は隣接しています.
    隣接行列は頂点間の隣接関係を表す行列であり,二次元配列の一種の表現形式である.
    [   a  b  c
    a  [0][0][1]
    b  [0][0][1] // 1은 인접된 상태
    c  [1][0][0]
    ]
    「仁晶ヘルツ列」の利点:2つの頂点の間に関係があるかどうかを決定するのに便利な、一目瞭然な表から構成されています.
    主に最短パスを検索するために使用されます.

    りんせつひょう


    隣接リストは、各頂点がどの頂点に隣接しているかを示すリスト形式です.
    各頂点には、自分に隣接する他の頂点を含むリストがあります.
    A->C->null
    B->A->C->null
    C->A->null
    「隣接リスト」には、接続可能なすべての隣接マトリクスの数が格納されます.
    隣接していない場合は0が格納され、隣接している場合は1が格納され、メモリが大量に消費されます.
    メモリをより効率的に使用する場合は、隣接マトリクスではなく隣接リストを使用します.

    Tree


    木が逆さまに置かれている様子は、一方向図です.

    一番上のFはルート(Root)で一番上にあります.
    各文字はノード(Node)と呼ばれ、下に分岐すると既存のノードは親ノード、下にサブノードとなります.
    サブノードなしはリーフノードとも呼ばれます.
    ->すべてのインプリメンテーション(ファイルシステムなど)は、ツリーを使用して作成されます.

    BST



    完全バイナリツリー:最後のレベルを除くすべてのノードが満たされ、最後のレベルのノードが満たされる必要はありませんが、左側が満たされている必要があります.

    飽和二進樹:正二進樹であり、完全二進樹でもある.ツリー、すべてのリーフノードのレベルが同じで、すべてのレベルが満たされています.

    正二叉木:各ノードに0個または2個のサブノードがあります.