Gezacktes Array - Jagged array

Image
Speicherlayout eines gezackten Arrays.

In der Informatik ist ein gezacktes Array , auch als gezacktes Array bekannt , ein Array von Arrays, dessen Mitglieds-Arrays unterschiedlich lang sein können und bei der Visualisierung als Ausgabe Reihen mit gezackten Kanten erzeugen. Im Gegensatz dazu sind zweidimensionale Arrays immer rechteckig, daher sollten gezackte Arrays nicht mit mehrdimensionalen Arrays verwechselt werden , aber ersteres wird oft verwendet, um letzteres zu emulieren.

Arrays von Arrays in Sprachen wie Java, PHP, Python (mehrdimensionale Listen), Ruby, C#.Net, Visual Basic.NET , Perl, JavaScript, Objective-C, Swift und Atlas Autocode werden als Iliffe-Vektoren implementiert .

Beispiele

In C# und Java können gezackte Arrays mit folgendem Code erstellt werden:

int[][]c;
c = new int[2][]; // creates 2 rows
c[0] = new int[5]; // 5 columns for row 0
c[1] = new int[3]; // create 3 columns for row 1

In C und C++ kann ein gezacktes Array (auf dem Stack) mit dem folgenden Code erstellt werden:

int jagged_row0[] = {0,1};
int jagged_row1[] = {1,2,3};
int *jagged[] = { jagged_row0, jagged_row1 };

In C/C++ können gezackte Arrays (auf dem Heap) auch mit einem Array von Zeigern erstellt werden:

int *jagged[5];

jagged[0] = malloc(sizeof(int) * 10);
jagged[1] = malloc(sizeof(int) * 3);

In C++/CLI kann ein gezacktes Array mit folgendem Code erstellt werden:

using namespace System;
int main()
{
    array<array<double> ^> ^ Arrayname = gcnew array <array<double> ^> (4); // array contains 4 
    //elements
    return 0;
}

In Python sind gezackte Arrays nicht nativ, aber man kann Listenverständnis verwenden , um eine mehrdimensionale Liste zu erstellen, die jede dimensionale Matrix unterstützt:

multi_list_3d = [[[] for i in range(3)] for i in range(3)]
# Produces: [[[], [], []], [[], [], []], [[], [], []]]

multi_list_5d = [[[] for i in range(5)] for i in range(5)]
# Produces: [[[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []]]

Siehe auch

Verweise