Poszarpana tablica
W informatyce postrzępiona tablica , znana również jako poszarpana tablica , nieregularna tablica to tablica tablic, których składowe tablice mogą mieć różne długości, tworząc rzędy postrzępionych krawędzi, gdy są wizualizowane jako dane wyjściowe. W przeciwieństwie do tego, tablice dwuwymiarowe są zawsze prostokątne, więc tablic postrzępionych nie należy mylić z tablicami wielowymiarowymi , ale ta pierwsza jest często używana do naśladowania drugiej.
Tablice tablic w językach takich jak Java, PHP, Python (listy wielowymiarowe), Ruby, C#.NET, Visual Basic.NET , Perl, JavaScript, Objective-C, Swift i Atlas Autocode są implementowane jako wektory Iliffe .
Przykłady
W C# i Javie tablice postrzępione można tworzyć za pomocą następującego kodu:
0
int [][] c ; c = nowy int [ 2 ][]; // tworzy 2 wiersze c [ ] = new int [ 5 ]; // 5 kolumn dla wiersza 0 c [ 1 ] = new int [ 3 ]; // utwórz 3 kolumny dla wiersza 1
W C i C++ można utworzyć postrzępioną tablicę (na stosie) za pomocą następującego kodu:
0
int postrzępiony_wiersz0 [] = { , 1 }; int postrzępiony_wiersz1 [] = { 1 , 2 , 3 }; int * postrzępiony [] = { postrzępiony_wiersz0 , postrzępiony_wiersz1 };
W C/C++ postrzępione tablice można również tworzyć (na stercie) za pomocą tablicy wskaźników:
0
int * postrzępiony [ 5 ]; postrzępiony [ ] = malloc ( rozmiar ( int ) * 10 ); postrzępiony [ 1 ] = malloc ( rozmiar ( int ) * 3 );
W C++/CLI postrzępioną tablicę można utworzyć za pomocą kodu:
0
używając przestrzeni nazw System ; int main () { tablica < tablica < podwójna > ^> ^ Nazwa tablicy = gcnew tablica < tablica < podwójna > ^> ( 4 ); //tablica zawiera 4 //elementy return ; }
W Fortranie postrzępioną tablicę można utworzyć przy użyciu typów pochodnych z możliwymi do przypisania składnikami:
type :: Jagged_type integer , alocatable :: row (:) end type Jagged_type type ( Jagged_type ) :: Jagged ( 3 ) Jagged ( 1 ) % row = [ 1 ] Jagged ( 2 ) % row = [ 1 , 2 ] Jagged ( 3 )% wiersz = [ 1 , 2 , 3 ]
W Pythonie postrzępione tablice nie są natywne, ale można użyć wyrażeń listowych , aby utworzyć wielowymiarową listę, która obsługuje dowolną macierz wymiarową:
multi_list_3d = [[[] for i in range ( 3 )] for i in range ( 3 )] # Tworzy: [[[], [], []], [[], [], []], [[ ], [], []]] multi_list_5d = [[[] for i in range ( 5 )] for i in range ( 5 )]
# Produkuje: [[[], [], [], [], []], [[], [], [], [], []], [[], [], [], [] , []], [[], [], [], [], []], [[], [], [], [], []]]