Зубчатый массив
В информатике — зубчатый массив , также известный как неровный массив. [1] или нерегулярный массив [2] представляет собой массив массивов, в котором массивы элементов могут иметь разную длину, [3] создание рядов неровных краев при визуализации в качестве вывода. Напротив, двумерные массивы всегда имеют прямоугольную форму. [4] поэтому неровные массивы не следует путать с многомерными массивами , но первые часто используются для эмуляции вторых.
Массивы массивов в таких языках, как Java, PHP, Python (многомерные списки), Ruby, C#.NET, Visual Basic.NET , Perl, JavaScript, Objective-C, Swift и Atlas Autocode, реализованы как векторы Илиффа .
Примеры
[ редактировать ]В C# и Java [5] зубчатые массивы можно создать с помощью следующего кода: [6]
int [][] c ; c = новый int [ 2 ][]; // создает 2 строки c [ 0 ] = new int [ 5 ]; // 5 столбцов для строки 0 c [ 1 ] = new int [ 3 ]; // создаем 3 столбца для строки 1
В C и C++ зубчатый массив можно создать (в стеке), используя следующий код:
int jagged_row0 [] = { 0 , 1 }; int jagged_row1 [] = { 1 , 2 , 3 }; int * jagged [] = { jagged_row0 , jagged_row1 };
В C/C++ зубчатые массивы также можно создавать (в куче) с помощью массива указателей:
int * зубчатый [ 5 ]; зубчатый [ 0 ] = malloc ( sizeof ( int ) * 10 ); jagged [ 1 ] = malloc ( sizeof ( int ) * 3 );
В C++/CLI зубчатый массив можно создать с помощью кода: [7]
используя пространство имен System ; int main () { array < array < double > ^> ^ Arrayname = gcnew array < array < double > ^> ( 4 ); // массив содержит 4 //элемента return 0 ; }
В Фортране зубчатый массив может быть создан с использованием производных типов с выделяемыми компонентами:
type :: Jagged_type целое число , выделяемое :: row (:) end type Jagged_type type ( Jagged_type ) :: Jagged ( 3 ) Jagged ( 1 )% row = [ 1 ] Jagged ( 2 )% row = [ 1 , 2 ] Jagged ( 3 )% строка = [ 1 , 2 , 3 ]
В Python зубчатые массивы не являются встроенными, но можно использовать списки для создания многомерного списка, который поддерживает любую размерную матрицу: [8]
multi_list_3d = [[[] for i in range ( 3 )] for i in range ( 3 )] # Производит: [[[], [], []], [[], [], []], [[ ], [], []]] multi_list_5d = [[[] for i in range ( 5 )] for i in range ( 5 )] # Производит: [[[], [], [], [], [] ], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], [ ]], [[], [], [], [], []]]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Кинг, К.Н. Программирование на языке C. WW Нортон. п. 301. ИСБН 978-0-393-97950-3 .
- ^ Справочник по структурам данных и приложениям . ЦРК Пресс. 2004.
- ^ Джесси Либерти; Брайан Макдональд (18 ноября 2008 г.). Изучение С# 3.0 . «О'Рейли Медиа, Инк.». стр. 210–. ISBN 978-0-596-55420-0 .
- ^ Дон Бокс (2002). Essential .Net: общеязыковая среда выполнения . Аддисон-Уэсли Профессионал. п. 138. ИСБН 978-0-201-73411-9 .
- ^ «Неровный массив в Java — GeeksforGeeks» . Гики для Гиков . 03 февраля 2016 г. Проверено 13 августа 2018 г.
- ^ Пол Дж. Дейтел; Харви М. Дейтел (26 сентября 2008 г.). C# 2008 для программистов . Пирсон Образование. п. 40. ИСБН 978-0-13-701188-9 .
- ^ «Неровные массивы» . ФункцияX . Проверено 26 ноября 2014 г.
- ^ «Списки в Python раскрыты» . Элвин.io . Проверено 31 января 2016 г.