Cтраница 2
Для большинства операций, включая арифметические доступ к линейному массиву и проверки различных условий, непосредственно используются операции, выполняемые аппаратурой. В тех случаях, когда не имеется подходящих аппаратных операций, как, например, в случае комплексной арифметики и доступа к многомерному массиву, употребляется простое встроенное моделирование таких операций последовательностями машинных команд. И только в немногих случаях, в основном в операциях ввода-вывода, необходимо моделирование с помощью специальных программ, работающих во время выполнения программы, полученной после трансляции. [16]
Логическая организация такого массива не отличается от логической организации других линейных массивов: простая последовательность элементов различных типов. [17]
Очевидно, что множество может быть представлено в виде линейного массива переменного размера с использованием одного из методов представления в памяти, предложенного для стеков, очередей или связанных списков. Однако при таком представлении выполнение операций включения, исключения и проверки принадлежности должно сопровождаться просмотром памяти в поисках нужного элемента. [18]
Например, каждый элемент десятиэлементного вектора V может быть неоднородным трехэлементным линейным массивом с элементами NAME, AGE и SALARY. Каким должен быть дескриптор во время выполнения программы. [19]
Структура памяти машины UltraSPARC II очень проста: память представляет собой линейный массив из 264 байтов. К сожалению, память настолько велика ( 18 446 744 073 709 551 616 байтов), что в настоящее время ее невозможно реализовать. Современные реализации имеют ограничение на размер адресного пространства, к которому они могут обращаться ( 244байтов у UltraSPARC II), но в будущем это число увеличится. Байты нумеруются слева направо, но нумерацию можно изменить и сделать ее справа налево, установив бит во флаговом регистре. [20]
Описанные выше структуры данных можно мысленно представить себе в виде линейного массива из элементов ( списка) так, что вставки и удаления можно осуществить в любой позиции этого массива. Иногда для каких-то приложений вполне приемлемы некоторые более ограниченные режимы доступа, допускающие упрощение. Очевидно, что все, что необходимо для управления соответственно стеком или очередью, - это один или два указателя. [21]
Любая структура данных этого типа будет ( после создания) представлять собой линейный массив из трех элементов, доступ к которым осуществляется посредством индексов ФАМИЛИЯ, ВОЗРАСТ и АДРЕС соответственно. Действия примитива DATA состоят в создании и внесении в таблицы дескриптора для типа данных АНК-СЛУЖ, описывающего длину элемента и индексы. Кроме того, в таблицу подпрограмм вводятся псевдоподпрограммы с именами АНК-СЛУЖ, ФАМИЛИЯ, ВОЗРАСТ и АДРЕС. Подпрограмма АНК-СЛУЖ представляет примитив создания массивов типа АНК-СЛУЖ - При вызове АНК-СЛУЖ она выделяет пространство для нового массива типа АНК-СЛУЖ и присваивает начальные значения элементам массива. [22]
Хороший интерпретатор способен будет реализовать факты э как представление списка L в виде линейного массива ( так, как это описано выше) и получать прямой доступ к его элементам, используя индексированный поиск. [23]
Записи в Коболе и структуры в ПЛ / I относятся к наиболее известным примерам линейного массива такого типа. [24]
Стек ( известный так же, как пушдаун-список или магазин) является простейшей разновидностью линейных массивов переменной длины. Включение и исключение элементов ограничено только одним концом стека, называемым вершиной стека. Доступ обычно разрешается только к элементу, находящемуся на вершине стека. Термин стек является описательным по отношению к способу, с помощью которого массив растет и сокращается, например кипа тарелок может расти и сокращаться только путем добавления и убирания верхних тарелок. [25]
Выходными данными пакета являются: ведомости, распечатанные на АЦПУ; справочная информация о корректности входных данных; транзитные линейные массивы, обеспечивающие цикличность работы пакета; линейные массивы, предназначенные для связи пакета с другими участками учета. [26]
![]() |
Список ( 101, 102, 103, 104, представленный как связанный список. [27] |
Подходы Снобола 4 и ПЛ / I базируются на одном и том же идейном фундаменте: сложные структуры данных конструируются из узлов, представляющих собой неоднородные линейные массивы фиксированного размера. Узлы связаны вместе указателями, хранящимися в одном массиве и указывающими на другие. Неоднородные массивы, являющиеся узлами, имеют структуру, идентичную описанной в разд. [28]
Дек ( очередь с двумя концами)) - это обобщение очереди, при котором включения, исключения и доступ разрешены на обоих концах линейного массива. [29]
Выходными данными пакета являются: ведомости, распечатанные на АЦПУ; справочная информация о корректности входных данных; транзитные линейные массивы, обеспечивающие цикличность работы пакета; линейные массивы, предназначенные для связи пакета с другими участками учета. [30]