Poszarpana tablica

Układ pamięci postrzępionej tablicy.

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: [[[], [], [], [], []], [[], [], [], [], []], [[], [], [], [] , []], [[], [], [], [], []], [[], [], [], [], []]] 

Zobacz też