プログラミングでは、世界を直接表現しようとしているのでない限り、従来のジオメトリの観点から多次元配列を考えないでください。連続する各「次元」は、配列を含む別の配列と考える方がよいでしょう。これが発生する可能性のあるいくつかのユースケースがあります。ただし、3次元以上を使用している場合は、配列または「配列の配列」とは考えられなくなります。3レベル以上の深さを必要とするものをプログラムする方法に近いので、ツリーを使用することをお勧めします。
一例として、ツリーがあります。ルートノードには、ノードもあるノードがあります。あなたが何かを分類したいのであれば、木は素晴らしいツールです。ランダムに入ってきたたくさんの数字を並べ替えたいとしましょう。ルートに入った最初の番号を作成します。最初の番号が5で、次の番号が7の場合、ルートノード5の「右側」に7を配置します。3を取得してから4を取得した場合は、3を5の「左」、次に3の「右」に4。このツリーを順番にトラバースする場合(常にツリーを左下に移動し、新しいノードがない場合にのみ上に移動してから右に移動します)。 )、ソートされたリストになります:3、4、5、7。
5
/ \
3 7
\
4
ここでは、ツリー構造を見ることができます。これをCで行う場合は、次のような構造体を使用します(私は擬似コードを使用しています)。
struct Node{
int val;
Node left;
Node right;
}
二分木(私が説明してきたこと)にはたくさんの資料がありますが、主に「空間の次元のような」配列の概念から離れて、要素を格納できる単なるデータ構造の概念から離れてほしいと思いました。二分木やその他のデータ構造が複雑すぎる場合があり、5次元以上の配列の方がデータの格納に便利な場合があります。今のところ例は思いつかないのですが、以前から使っていました。