プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

データ構造におけるADT配列表現


基本概念

ADTは抽象データ型を示します。

配列は、連続する要素を同じ順序で保持できるため、ADTとして定義されます。そして彼らは許可します

インデックスまたは位置を介した特定の要素へのアクセス。

String、int、Personのいずれでもよいため、抽象的です

int[] arrA = new int[1];
String[] arrB = new String[1];
Person[] arrC = new Person[3]; // where Person is treated as a defined class

利点

  • アイテムまたは要素への高速でランダムなアクセス。
  • メモリ効率が非常に高く、コンテンツの保存に必要なメモリ以外に必要なメモリはごくわずかです。

短所

  • 要素の挿入と削除が遅い
  • 配列のサイズは、配列の作成時に認識されている必要があり、固定されています(静的)

ADTリストの配列ベースの実装

Public class ListArrayBased implementsListInterface {
   private static final int MAX_LIST1 = 50;
   private Object items1[];
   // an array of list items
   privateint numItems1;
   // number of items in list
   publicListArrayBased() {
      items1 = new Object[MAX_LIST1];
      numItems1 = 0;
   } // end default constructor
}



  1. データ構造のB+ツリークエリ

    ここでは、B+ツリーで検索を実行する方法を説明します。 B +ツリー検索は、B+ツリークエリとも呼ばれます。このアルゴリズムは、Bツリーのクエリと非常によく似ています。さらに、これは範囲クエリをサポートします。以下のようなB+ツリーがあるとします- B+ツリーの例 − 検索手法は、二分探索木と非常によく似ています。上記のツリーから63を検索するとします。したがって、ルートから開始します。63はルート要素60よりも大きく、75よりも小さくなります。したがって、要素60の右の子に移動します。右の子は63です。ただし、Bツリーを使用すると、次のようになります。結果。この場合、現在のノード

  2. ハーフエッジデータ構造

    はじめに テンプレートパラメータまたはハーフエッジデータ構造(HalfedgeDSと略記)のHDSは、平面マップ、多面体、またはその他の方向付け可能な2次元など、頂点、エッジ、および面の入射情報を維持できるエッジ中心のデータ構造として定義されます。ランダムな次元に埋め込まれたサーフェス。各エッジは、反対方向の2つのハーフエッジに分割されます。各ハーフエッジには、1つの入射面と1つの入射頂点が格納されます。各面と各頂点に1つの入射ハーフエッジが格納されます。ハーフエッジデータ構造のバリエーションを減らすと、面のハーフエッジポインタや面の保存など、この情報の一部を削除できます。 ハーフエッジデ