データ構造体での配列表現の配列
このセクションでは、多次元配列の別の表現を示します。ここでは、配列の配列表現が表示されます。この形式では、複数の配列の開始アドレスを保持している配列があります。表現は次のようになります。
これは、サイズ[7x8]の2次元配列xです。各行は、単一の1次元配列として表されます。初期配列は、これらの単一配列のアドレスを保持しています。これらはアドレスの配列であるため、ポインタの配列であると言えます。各ポインタは別の配列のアドレスを保持しています。
この種の配列を作成すると、以下のような新しいキーワードを使用できます-
int [][] x = new int[7][8];
位置x[i、j]に存在する要素を取得するには、最初にx [i]を使用してアドレスを検索し、次にその配列のj番目のインデックスに移動します。
-
データ構造のセグメントツリー
このセクションでは、セグメントツリーとは何かを確認します。それについて説明する前に、1つの問題を見てみましょう。 配列arr[0、…、n-1]があるとすると、次の操作を実行できます- インデックスlからrまでの要素の合計を求めます。ここで0≤l≤r≤n-1 配列の指定された要素の値を新しい値xに変更します。 arr [i]=xを実行する必要があります。 0からn–1の範囲のi。 この問題は、セグメントツリーを使用して解決できます。セグメントツリーは、O(log n)時間で合計とクエリを取得するのに役立ちます。では、これを表現する方法を見てみましょう- リーフノードは、
-
ハーフエッジデータ構造
はじめに テンプレートパラメータまたはハーフエッジデータ構造(HalfedgeDSと略記)のHDSは、平面マップ、多面体、またはその他の方向付け可能な2次元など、頂点、エッジ、および面の入射情報を維持できるエッジ中心のデータ構造として定義されます。ランダムな次元に埋め込まれたサーフェス。各エッジは、反対方向の2つのハーフエッジに分割されます。各ハーフエッジには、1つの入射面と1つの入射頂点が格納されます。各面と各頂点に1つの入射ハーフエッジが格納されます。ハーフエッジデータ構造のバリエーションを減らすと、面のハーフエッジポインタや面の保存など、この情報の一部を削除できます。 ハーフエッジデ