ГНЕЗДОВЫЕ МАССИВЫ И РЕКУРСИЯ
https://doi.org/10.22405/2226-8383-2015-16-3-479-495
Аннотация
Решение задач с данными, представленными вложенными или, по- другому, гнездовыми массивами, является непростым делом из-за достаточно непредсказуемой их структуры. И здесь во многих случаях спасительной оказывается рекурсия. Ее использование позволяет линейно по одной и той же схеме осуществлять пробежку по всем элементам каждого уровня любого гнездового массива вне зависимости от его структуры и глубины вложенности. Гнездовой массив можно интерпретировать деревом, корнем которого является сам массив, от него идут дуги к массивам- элементам и т. д. Листьями подобного дерева являются скаляры или строки — конечные элементы, не имеющие ссылок на последующие массивы. В статье для решения ряда задач общего характера с гнездовыми массивами предлагаются соответствующие рекурсивные программы-функции. Вот примеры таких задач: подсчитать общее количество листьев массива; сформировать массив из транспонированных на всех уровнях вложенности элементов исходного массива; выяснить, является ли данный объект (скаляр, строка, простой массив, гнездовой массив) элементом данного массива на каком-либо уровне вложенности; подсчитать количество вхождений объекта в массив на всех уровнях вложенности; собрать все листья массива в вектор, заместить листья данного массива элементами какого-либо вектора и т. п. Во всех случаях рекурсивная триада такова: параметр рекурсии — гнездовой массив; декомпозиция — переходы на всех уровнях вложенности от массивов к их элементам и так до листьев; рекурсивная база, то есть тривиальные случаи в рекурсии — листья массивов [1]. Предлагаемые лаконичные рекурсивные программы-функции решения перечисленных и некоторых других задач реализованы на простом и интуитивно понятном языке программирования системы инженерных и научных вычислений PTC Mathcad Prime (версия 3.1) [2,3]. Отметим, что в этой системе гнездовые массивы — это вложенные друг в друга матрицы.
Ключевые слова
Об авторах
А. Р. ЕсаянРоссия
Н. М. Добровольский
Россия
Список литературы
1. Есаян А. Р. Обучение алгоритмизации на основе рекурсии. Тула: Изд. ТГПУ, 2001, с. 215
2. Brent Maxfield, P. E. Essential PTC Mathcad Prime 3.0. A Guide for New and Cur-rent Users, New York, Academic Press is an imprint of Elsevier, Nov. 11, 2013, p. 563
3. Нans Wessenlingh and Hans de Waard. Calculate & Communicate with Mathcad Prime 3.0, Delft Academic Press, The Netherlands, First edition 2014.
Рецензия
Для цитирования:
Есаян А.Р., Добровольский Н.М. ГНЕЗДОВЫЕ МАССИВЫ И РЕКУРСИЯ. Чебышевский сборник. 2015;16(3):479-495. https://doi.org/10.22405/2226-8383-2015-16-3-479-495
For citation:
Esayan A.R., Dobrovolsky N.M. NESTED ARRAYS AND RECURSION. Chebyshevskii Sbornik. 2015;16(3):479-495. (In Russ.) https://doi.org/10.22405/2226-8383-2015-16-3-479-495