на стр 6, лекции 3, Очевидно "Ck <= модуль(Gk(е))*b(k+1)" (1) - , подскажите что значит "модуль" и почему это очевидно... |
Списки
Списки с последовательным доступом
Последовательный доступ к элементам списка, как правило, реализуется с использованием динамического выделения памяти во время исполнения программы. Поиск свободных участков памяти обычно возлагается на систему программирования. Мы будем называть такие списки связными. Преимущества связных списков перед списками с прямым доступом проявляются в тех случаях, когда часто используются вставки в списки и удаление элементов из списков. Еще одно преимущество динамического выделения памяти может проявиться, когда в алгоритме одновременно используется большое количество списков, каждый из которых в процессе работы может потребовать большой объем памяти, однако в совокупности эта память может быть ограничена приемлемой величиной.
Элементы связного списка, следующие друг за другом, не обязательно
размещаются в последовательных ячейках памяти — доступ к следующему и
предыдущему элементам осуществляется при помощи специальных ссылок
(указателей). Чтобы обеспечить запоминание указателей на следующий и
предыдущий элементы, каждый элемент списка "погружается" в узел,
для которого в памяти компьютера формируется запись, состоящая из нескольких
полей. В простейшем случае эта запись может состоять из двух полей. Одно
из них — — предназначено для запоминания самого
элемента, а другое —
— для запоминания позиции следующего.
Для обозначения такого узла будем использовать следующую форму:
![\eq*{
t: [\Info, \Next],
}](/sites/default/files/tex_cache/d6ead9ac70796249aeb97aa901b05556.png)





При описании операций со списками через будем
обозначать узел,
расположенный в позиции
. Для доступа к полям узла
используем форму
,
и т.д. Оператор для создания нового узла будем записывать в виде
![\eq*{
\Create (t: [\Info, \Next]).
}](/sites/default/files/tex_cache/3c860b0e6f50eb85291777d47de04e56.png)
Для обеспечения сканирования как от начала к концу, так и от конца к началу используют узлы следующего вида:
![\eq*{
t: [\Info, \Next, \Precede].
}](/sites/default/files/tex_cache/de604d51a17e00415fffb73b6c8681b9.png)
Поле служит для запоминания позиции
элемента, предшествующего элементу, находящемуся в позиции
. Доступ к
такому списку может осуществляться как через его начало с помощью переменной
, так и через конец с помощью переменной
.
Такие списки называются двусторонними.
На рис. 2.1—2.6 представлено несколько разновидностей списков. Узлы списков
изображены прямоугольниками, разделенными на части по числу полей. Стрелки
проведены в соответствии со значениями полей и
.

Рис. 2.1. Односторонний список: вход через первый элемент, сканирование от начала к концу, признак конца — Next(pos) = nil

Рис. 2.2. Односторонний список: вход через первый элемент; сканирование от начала к концу, признак конца — Next(pos) = pos

Рис. 2.3. Односторонний циклический список: вход через первый элемент; сканирование от начала к концу, признак конца — Next(pos) = first

Рис. 2.4. Односторонний циклический список: вход через последний элемент с помощью ссылки Last^.next; сканирование от начала к концу, признак конца — pos = last