stringtranslate.com

matriz irregular

Diseño de memoria de una matriz irregular.

En informática , una matriz irregular , también conocida como matriz irregular [1] o matriz irregular [2] es una matriz de matrices cuyos miembros pueden tener diferentes longitudes, [3] produciendo filas de bordes irregulares cuando se visualiza como producción. Por el contrario, los arreglos bidimensionales son siempre rectangulares [4] por lo que los arreglos irregulares no deben confundirse con los arreglos multidimensionales , pero los primeros se usan a menudo para emular a los segundos.

Las matrices de matrices en lenguajes como Java, PHP, Python (listas multidimensionales), Ruby, C#.NET, Visual Basic.NET , Perl, JavaScript, Objective-C, Swift y Atlas Autocode se implementan como vectores de Iliffe .

Ejemplos

En C# y Java [5] se pueden crear matrices irregulares con el siguiente código: [6]

int [][] c ; c = nuevo int [ 2 ][]; // crea 2 filas c [ 0 ] = new int [ 5 ]; // 5 columnas para la fila 0 c [ 1 ] = new int [ 3 ]; // crea 3 columnas para la fila 1            

En C y C++ , se puede crear una matriz irregular (en la pila) usando el siguiente código:

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

En C/C++, también se pueden crear matrices irregulares (en el montón) con una matriz de punteros:

int * irregular [ 5 ]; irregular [ 0 ] = malloc ( tamaño de ( int ) * 10 ); irregular [ 1 ] = malloc ( tamaño de ( int ) * 3 );        

En C++/CLI , se puede crear una matriz irregular con el código: [7]

usando el sistema de espacio de nombres ; int main () { matriz < matriz <doble> ^> ^ Nombre de matriz = gcnew matriz < matriz <doble> ^ > ( 4 ) ; // la matriz contiene 4 //elementos return 0 ; }                 

En Fortran , se puede crear una matriz irregular utilizando tipos derivados con componentes asignables:

tipo :: Jagged_type entero , asignable :: fila (:) tipo final Jagged_type tipo ( Jagged_type ) :: Jagged ( 3 ) Jagged ( 1 )% fila = [ 1 ] Jagged ( 2 )% fila = [ 1 , 2 ] Jagged ( 3 )% fila = [ 1 , 2 , 3 ]              

En Python , las matrices irregulares no son nativas, pero se pueden usar listas por comprensión para crear una lista multidimensional que admita cualquier matriz dimensional: [8]

multi_list_3d  =  [[[]  para  i  en  el rango ( 3 )]  para  i  en el  rango ( 3 )] # Produce: [[[], [], []], [[], [], []], [[ ], [], []]]multi_list_5d  =  [[[]  para  i  en  el rango ( 5 )]  para  i  en el  rango ( 5 )] # Produce: [[[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []], [[], [] , [], [], []]]

Ver también

Referencias

  1. ^ Rey, Programación KNC . WW Norton. pag. 301.ISBN​ 978-0-393-97950-3.
  2. ^ Manual de estructuras y aplicaciones de datos . Prensa CRC. 2004.
  3. ^ Jesse Libertad; Brian MacDonald (18 de noviembre de 2008). Aprendiendo C# 3.0. "O'Reilly Media, Inc.". págs. 210–. ISBN 978-0-596-55420-0.
  4. ^ Don Caja (2002). .Net esencial: el tiempo de ejecución de lenguaje común. Profesional de Addison-Wesley. pag. 138.ISBN 978-0-201-73411-9.
  5. ^ "Matriz irregular en Java - GeeksforGeeks". Geeks para Geeks . 2016-02-03 . Consultado el 13 de agosto de 2018 .
  6. ^ Paul J. Deitel; Harvey M. Deitel (26 de septiembre de 2008). C# 2008 para programadores. Educación Pearson. pag. 40.ISBN 978-0-13-701188-9.
  7. ^ "Matrices irregulares". FunciónX . Consultado el 26 de noviembre de 2014 .
  8. ^ "Listas en Python desmitificadas". Alvin.io . Consultado el 31 de enero de 2016 .