Javaの学習:データ構造の概要

データの構造

データ構造:

データ構造_スタック:最後のアウト

  • 同じ側​​の入口と出口

_キューデータ構造: FIFO

  • 入口および出口の両側に設定

_データ構造体の配列:

  • 高速クエリ:配列のアドレスが連続している、我々は、配列の最初のアドレスでの配列を見つけることができます、あなたはすぐにインデックスによって配列の特定の要素を見つけることができます。
  • スローの追加:配列の長さは固定され、我々は要素を削除/追加したい、あなたは元の配列を介してデータをコピーし、新しい配列を作成する必要があります
例:
もし[] ARR =新しいあなた[] {1,2,3,4}。

要素3配列のインデックスを削除する必要があります

  • あなたは、新しい配列を作成しなければならない長さは元の配列の長さ-1
  • 新しい配列に元の配列の他の要素をコピーします。
  • 新しい配列のアドレスに変数に代入ARR
  • 元の配列は、メモリ内(リサイクルガベージコレクションを)破棄されます


_リンクされたリストデータ構造:

  • スロークエリ:リンクリストアドレスは、各クエリ要素連続していない、クエリはゼロからスタートしなければなりません。
  • 高速の追加および削除:鎖状構造、要素を追加/削除、チェーンの全体的な構造、非常に高速の追加と削除に与える影響はありません

リストの各要素は、ノードとして知られている
ノードは、データ・ソースが含まれている(メモリ・アレイ)と、2つのポインタフィールド(格納アドレス)

  • 単方向チェーン:チェーンの一方の鎖のみ、我々は要素の順序を保証することはできません(メモリ素子及び削除要素の順序が一致しない場合があります)
  • 双方向チェーン:チェーンは、順序集合、一方の鎖は、特に記録素子配列を有し、二つの鎖を持っています


バイナリツリー: 2を超えない支店

  • ソートツリー/検索木は:バイナリツリーに基づいて、順序の要素がある(左の子小さな木、右部分木大)
  • バランスのとれたツリー:左の子と右の子等しいです
  • アンバランスツリー:左の子と右の子が同じではありません

赤黒木:
特徴:バランスの取れた木の近くには、クエリの速度は、クエリのリーフノードの最大数を非常に高速であるとの二倍の最小数を超えることはできません
制約を:

    1. ノードは、赤または黒であることができます
    2. ルートノードは黒
    3. リーフノード(NULLノード)は黒であります
    4. 各赤ノードの子は黒です
    5. それぞれへのすべてのパス上の任意のノードは、そのリーフノードは、黒のノードの数に等しいです。

おすすめ

転載: www.cnblogs.com/cainiao-chuanqi/p/11223084.html