Cтраница 3
![]() |
Два различных минимальных остовных деревадпя одной сети. [31] |
Алгоритм построения минимального остовного дерева использует связанный список, чтобы сохранять связи, которые могут быть добавлены к каркасу. Сначала алгоритм помещает в список связи корневого узла. Затем проводится поиск связи с минимальной стоимостью. Если узел на другом конце этого ребра не находится в дереве, программа добавляет и его, и соответствующее ребро. После этого программа вносит в список связи, исходящие из нового узла, поэтому в дальнейшем будут рассматриваться уже эти ребра. [32]
Данные находятся в памяти в виде связанного списка: некоторое количество блоков из двух слов разбросано по памяти; первое слово блока содержит данные, а второе указывает на первое слово следующего блока. MEM указывает на первое слово первого блока; последний блок распознается по нулевому второму слову. [33]
Рис 12.6 иллюстрирует удаление узла из связанного списка. Часть а) рисунка показывает связанный список после выполнения последней операции вставки. [34]
Цель данной программы состоит в создании функционального связанного списка. В узлах созданного списка можно хранить записи о деталях и агрегатах, что позволяет использовать его в реальных прикладных программах баз данных складов. Хотя здесь представлена не окончательная форма программы, она достаточно хорошо демонстрирует возможности создания совершенной структуры накопления и обработки данных. Листинг программы содержит 311 строк. Попробуйте самостоятельно проанализировать код, прежде чем прочтете анализ, приведенный после листинга. [35]
Записи, составляющие одну пачку, образуют связанный список, где каждая запись хранит в поле связи номер следующей записи в пачке. Последняя запись в пачке имеет в поле связи значение 0, что является признаком конца пачки. Так как операторы на нескольких дисплеях выполняют одновременно различные работы и, кроме того, вставляют и удаляют записи, то физически записи, входящие в одну пачку, оказываются произвольно перемешанными в архиве. Однако с помощью поля связи они логически составляют одно целое. [36]
![]() |
Циклический список. [37] |
Еще большая гибкость достигается, если использовать дважды связанный список, когда каждый элемент последовательности вместо одного имеет два связанных с ним указателя. В таком списке для любого элемента имеется мгновенный прямой доступ к предыдущему и последующему элементам. [38]
Еще большая гибкость достигается, если использовать дважды связанный список, когда каждый элемент st последовательности вместо одного имеет два связанных с ним указателя. В таком списке для любого элемента имеется мгновенный прямой доступ к предыдущему и последующему элементам, в связи с чем облегчаются такие операции, как включение нового элемента перед st и исключение элемента S; без предварительного знания его предшественника. Если есть необходимость, дважды связанный список очевидным образом можно сделать циклическим. [39]
Наиболее употребительным представлением списков свойств в памяти является связанный список, состоящий из индексов и значений, чередующихся в одной длинной последовательности. Включение в список или исключение из списка пары индекс-значение осуществляется путем включения или исключения двух элементов; эти операции выполняются просто. Доступ к элементу, заданному его индексом, требует просмотра списка и проверки элементов, являющихся индексами, до тех пор, пока не будет найден нужный индекс. Следующий элемент списка является искомым значением. В Сноболе 4 используется смесь последовательного и связанного представлений; см. упр. [40]
Вместо этого все копии строки кэш-памяти собираются в дважды связанный список. Элемент в таблице локальной памяти исходного узла показывает, в каком узле содержится головная часть списка. В машине NUM A-Q 2000 достаточно 6-битного номера, поскольку здесь может быть максимум 63 узла. Для системы SCI максимального размера достаточно будет 16-битного номера. [41]
Если же записи соединены в таблице индексов посредством связанного списка, то достаточно просмотреть только одну из интересующих нас цепочек ( предпочтительно самую короткую), выяснив при этом, какие из ее элементов удовлетворяют всем. [42]
Безусловно, в этом примере представлен упрощенный вид связанного списка. В реально используемой программе список должен обеспечивать еще больший доступ к первому и последнему узлам списка или создавать специальный объект итерации, с помощью которого клиенты смогут легко продвигаться по списку. [43]
На рис. 2 2 изображено схематичное представление этого связанного списка. Прямоугольники со ответствуют ячейкам, а стрелки - указателям на объекты Маленький перечеркнутый квадрат представляет значение nil, которое указывает на конец списка. [44]
![]() |
Преимущества и недостатки алгоритмов сортировки. [45] |