Cтраница 2
При реализации адресной функции используют два основных метода: последовательное распределение памяти; связанное распределение памяти. [16]
Связанное распределение - более сложный, но и более гибкий способ хранения линейного списка. При связанном распределении не требуется, чтобы список хранился в последовательных элементах памяти. [17]
Связанное представление линейного списка называется связанным списком. При связанном распределении памяти для построения структуры необходимо задать отношения следования и предшествования элементов с помощью указателей. Указателями служат адреса, хранимые в записях данных. В отличие от последовательного распределения памяти, при котором с помощью адресной функции вычисляется адрес следующего элемента, при связанном распределении памяти значение адресной функции можно получить только путем просмотра хранящихся указателей. Такой метод распределения памяти позволяет расширить либо сократить структуру без перемещения самих данных в памяти ЭВМ, однако при этом требуется больше памяти для хранения структуры по сравнению с последовательным распределением. [18]
Программа, в которой используется такая таблица, имела бы, в случае последовательного распределения, дополнительную переменную или константу, значение которой показывает, что таблица состоит из пяти элементов; эту же информацию можно задать с помощью признака конца ( пограничника), снабдив им элемент 5 или следующую ячейку. В случае связанного распределения в программе имеется переменная связи или константа, которая указывает на А, а отправляясь от А, можно найти все другие элементы списка. [19]
Циклический список. [20] |
Существуют различные модификации представления последовательностей в виде связанных списков. Следующие два примера позволят, при желании, читателю самостоятельно продолжить получение и других модификаций связанных распределений, отличных от приводимых ниже. [21]
В приложениях при выборе последовательного или связанного представления разумно сначала проанализировать типы операций, которые будут выполняться над последовательностью. Если операции производятся преимущественно над случайными элементами, осуществляют поиск специфических элементов ( см. гл. Связанное распределение предпочтительнее, если в значительной степени используются операции включения и / или исключения элементов, а также сцепления и / или разбиения последовательностей. [22]
Особенность сплава внедрения Со-С состоит в изменении электронного механизма стабилизации одномерных длиннопериодных структур с ростом содержания углерода выше предела растворимости. Здесь структурная перестройка сопровождается перераспределением легирующего элемента, что, в свою очередь, приводит к изменению упругих полей. Термодинамическое исследование [106] показало, что при определенных условиях взаимно связанное распределение концентрации и дефектов упаковки должно приобретать периодический характер. [23]
Помимо уже упомянутых работ, отметим следующие статьи, посвященные арифметике многократной точности. Арифметические операции над целыми числами неограниченной точности с привлечением методов связанного распределения памяти были элегантно описаны Дж. [24]
Алгоритм включения проверяет ячейки до тех пор, пока не найдет пустую. Для гарантии того, что пустая ячейка встречается, если она существует, каждый адрес i, O i m - 1, должен появляться в последовательности точно один раз. По существу, эту последовательность можно представить двумя способами, которые соответствуют последовательному и связанному распределению списков ( см. разд. [25]
При связанном распределении для) построения структуры необходимо задать отношения следования и предшествования элементов при помощи указателей. Указателями служат адреса, хранимые в записях данных. Таким образом, в отличие от последовательного распределения, при котором адресная функция позволяет вычислить адрес следующего элемента чри связанном распределении значение адресной функции может быть получено путем просмотра хранящихся указателей. [26]
При связанном распределении / для, построения структуры необходимо задать отношения следования и предшествования элементов при помощи указателей. Указателями служат адреса, хранимые в записях данных. Таким образом, в отличие от последовательного распределения, при котором адресная функция позволяет вычислить адрес следующего элемента, чри связанном распределении значение адресной функции может быть получено путем просмотра хранящихся указателей. [27]
Существует ряд других способов представления древовидных структур. Однако для представления сложных сетевых структур требуются более гибкие методы построения в памяти ЭВМ, которые невозможно получить с помощью последовательного распределения памяти. В этом случае используется связанное распределение памяти. [28]
Отметим, что адресная функция будет нелинейной, если массив непрямоугольный. Если же массив непрямоугольный, но имеет регулярную форму ( например, треугольная матрица), последовательное размещение может оставаться довольно эффективным. Однако в машинной графике мы редко будем иметь дело с такими массивами. При нерегулярной форме массива более приемлемым оказывается связанное распределение. В этом случае число указателей в каждом узле определяется числом ортогональных одномерных списков, частью которых этот узел является. Более того, ниже мы будем говорить о том, что указатели и данные необязательно должны храниться в одной и той же записи. Структура может быть представлена списком указателей, а данные могут храниться в отдельном списке данных. Такой подход делает структуру более гибкой и позволяет работать с записями переменной длины. Но эти преимущества достигаются за счет включения в каждый узел дополнительного указателя на запись данных. [29]
Связанное представление линейного списка называется связанным списком. При связанном распределении памяти для построения структуры необходимо задать отношения следования и предшествования элементов с помощью указателей. Указателями служат адреса, хранимые в записях данных. В отличие от последовательного распределения памяти, при котором с помощью адресной функции вычисляется адрес следующего элемента, при связанном распределении памяти значение адресной функции можно получить только путем просмотра хранящихся указателей. Такой метод распределения памяти позволяет расширить либо сократить структуру без перемещения самих данных в памяти ЭВМ, однако при этом требуется больше памяти для хранения структуры по сравнению с последовательным распределением. [30]