stack
(スタックとも呼ばれる) は、操作が制限された線形テーブルです。テーブルの一方の端では挿入操作と削除操作のみが許可されるという制限があります。 、追加、検索、削除などの操作は他の場所で実行できます。
簡単に言うと、この構造のセットを使用すると、要素へのアクセスには次のような特徴があります。
1. 先入れ、後出し。
2. スタックの入口と出口は両方ともスタックの最上部にあります。
スタックへのプッシュ: 要素をスタックの一番上に格納することを意味します。既にスタック内にある要素は、スタックの一番下に向かって一度に 1 位置ずつ移動します。
スタックのポップ: 要素を取得し、スタックの最上部にある要素を取り出し、スタック内の既存の要素をスタックの最上部に向かって 1 つの位置に移動します。
queue
、キューと呼ばれます。スタックと同様、これも操作が制限された線形テーブルです。制限は、挿入が次の場所でのみ許可されることです。テーブルの一方の端を削除し、テーブルのもう一方の端を削除します。
簡単に言うと、この構造のセットを使用すると、要素へのアクセスには次のような特徴があります:
1. 先入れ先出し
2. キューの入口と出口それぞれが片側を占めます。たとえば、左側が入口、右側が出口です。
Array
は、順序付けられた要素のシーケンスです。配列はメモリ内にあります 片端に連続した空間を作成し、その空間に要素を格納すると、インデックスを介して対応するデータをすばやく見つけることができます。
この方法を使用してデータを保存すると、次のような特徴があります:
1. 要素の検索が速く、インデックスを介して指定した位置の要素にすばやくアクセスできます。
2. 要素の追加と削除は遅いです。指定したインデックス位置に要素を追加するには、新しい配列を作成し、指定した新しい要素を指定したインデックス位置に格納してから、元の配列をコピーする必要がありますインデックスに従って新しい配列に要素を追加します。対応するインデックス位置
にある要素を削除するには、新しい配列を作成し、元の配列要素をインデックスに対応する新しい配列の位置にコピーする必要があります元の配列内の指定されたインデックス位置にある要素は、新しい配列にはコピーされません。
リンク リスト
は、実行時に動的に生成できる一連のノードで構成されます。各ノードは 2 つの部分で構成されます。1 つはデータ要素を格納するデータ フィールドで、もう 1 つは次のノードのアドレスを格納するポインタ フィールドです。リンク リストは、一方向リンク リストと二重リンク リストに分けられます。二重リンク リストは前のノードへの参照と次のノードへのポインタを持ちますが、一方向リンク リストは次のノードへのポインタのみを持ちます。
簡単に言うと、このデータ構造のコレクションを使用すると、データ ストレージには次の特性があります:
複数のノードがアドレスを介して接続されます。
クエリが遅い。要素を見つけたい場合は、接続されているノードを逆方向に検索する必要があります。
追加と削除はすぐに行えます。次の要素を接続するアドレスを変更するだけです。
バイナリ ツリー: ノードごとに 2 ノード以下の順序付きツリー
簡単に理解すると、バイナリ ツリーは次のとおりです。各ノードが存在するツリー 最大 2 つのサブツリーを持つツリー構造。最上位のノードはルート ノードと呼ばれ、その両側は左サブツリーと右サブツリーと呼ばれます。
赤黒ツリー自体は二分探索番号です。ノードを挿入した後も、番号は二分探索番号のままです。これは、番号のキー値がまだ順序どおりであることを意味します。
赤黒ツリーの制約:
ノードは赤または黒にできます
ルート ノードは黒です
リーフ ノードは黒です
赤い各ノードの子ノードは黒です
番号任意のノードから各葉ノードまでのすべてのパス上の黒いノードの数は同じです
##赤黒木の特徴:
特別な速度です葉要素を見つけるための最小および最大回数は 2 回を超えません。以上がJava の一般的な基本データ構造は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。