3. Представление графа списком списков. Алгоритм обхода графа в ширину
3. Представление графа списком списков. Алгоритм обхода графа в ширину
Граф можно определить с помощью списка списков следующим образом:
Type List = ^Tlist;
Tlist = record
inf : Byte;
next : List;
end;
Graph = ^TGpaph;
TGpaph = record
inf : Byte;
smeg : List;
next : Graph;
end;
При обходе графа в ширину мы выбираем произвольную вершину и просматриваем сразу все вершины, смежные с ней. Вместо стека используется очередь. Алгоритм обхода в ширину очень удобен при нахождении наикратчайшего пути в графе.
Приведем процедуру обхода графа в ширину на псевдокоде:
Procedure Obhod2(v);
{величины spisok, nov – глобальные}
Begin
queue = O;
queue <= v;
nov[v] = False;
While queue <> O do
Begin
p <= queue;
For u in spisok(p) do
If nov[u] then
Begin
nov[u] := False;
queue <= u;
End;
End;
End;
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Другие варианты обхода ограничений
Другие варианты обхода ограничений В этом разделе я подскажу вам другие варианты обхода ограничений файлообменных сервисов.Первый из них заключается в использовании ресурса filepost.ru. Бесплатно скачивать файлы не получится, но вот сэкономить на покупке премиум-аккаунта
1. Понятие графа. Способы представления графа
1. Понятие графа. Способы представления графа Граф – пара G = (V,E), где V – множество объектов произвольной природы, называемых вершинами, а Е – семейство пар ei = (vil, vi2), vijOV, называемых ребрами. В общем случае множество V и (или) семейство Е могут содержать бесконечное число
2. Представление графа списком инцидентности. Алгоритм обхода графа в глубину
2. Представление графа списком инцидентности. Алгоритм обхода графа в глубину Для реализации графа в виде списка инцидентности можно использовать следующий тип: Type List = ^S; S = record; inf : Byte; next : List; end; Тогда граф задается следующим образом: Var Gr : array[1..n] of List; Теперь обратимся к
Параметры обхода и облета
Параметры обхода и облета Чтобы управлять установками параметров обхода и облета, следует использовать диалоговое окно Walk and Fly (рис. 20.5), которое загружается из падающего меню View ? Walk and Fly ? Walk and Fly Settings… или щелчком на пиктограмме Walk and Fly Settings… на плавающей панели
9.4.1. Реализация графа в виде матрицы смежности
9.4.1. Реализация графа в виде матрицы смежности Нижеприведенный пример основан на двух предыдущих. В листинге 9.3 неориентированный граф реализован в виде матрицы смежности с помощью класса ZArray (см. раздел 8.1.26). Это нужно для того, чтобы новые элементы по умолчанию получали
Работа со списком задач
Работа со списком задач Как уже отмечалось выше, по умолчанию список задач проекта отображается в левой части окна (см. рис. 8.1). Для выполнения операций со списком задач в программе Project 2007 предназначены команды меню Проект.Чтобы отсортировать содержимое списка задач,
Параметры обхода и облета
Параметры обхода и облета Чтобы управлять установками параметров обхода и облета, следует использовать диалоговое окно Walk and Fly (рис. 20.4), которое загружается из падающего меню View ? Walk and Fly? Walk and Fly Settings…или щелчком на пиктограмме Walk and FlySettings…на плавающей панели
Функции работы со списком аргументов
Функции работы со списком аргументов Функция Краткое описание va_arg выбрать аргумент из списка va_end переустановить указатель va_start установить указатель на начало списка аргументов Эти макроопределения дают возможность получить доступ к аргументам функции, когда
Параметры обхода и облета
Параметры обхода и облета Чтобы управлять установками параметров обхода и облета, следует использовать диалоговое окно Walk and Fly (рис. 22.12), которое загружается из падающего меню View ? Walk and Fly ? Walk and Fly Settings… или щелчком на пиктограмме Walk and Fly Settings… на плавающей панели
Пример 24-3. Комбинирование "ИЛИ-списков" и "И-списков"
Пример 24-3. Комбинирование "ИЛИ-списков" и "И-списков" #!/bin/bash# delete.sh, утилита удаления файлов.# Порядок использования: delete имя_файлаE_BADARGS=65if [ -z "$1" ]then echo "Порядок использования: `basename $0` имя_файла" exit $E_BADARGS # Если не задано имя файла.else file=$1 # Запомнить имя файла.fi[ ! -f "$file" ]
3.1. Представление списков
3.1. Представление списков Список — это простая структура данных, широко используемая в нечисловом программировании. Список — это последовательность, составленная из произвольного числа элементов, например энн, теннис, том, лыжи. На Прологе это записывается так:[ энн,
9.1. Представление списков. Сортировка
9.1. Представление списков. Сортировка 9.1.1. Замечания в некоторых альтернативных способах представления списков В главе 3 была введена специальная система обозначений для списков (специальная прологовская нотация), которую мы и использовали в последующем изложении.
11.3. Поиск в ширину
11.3. Поиск в ширину В противоположность поиску в глубину стратегия поиска в ширину предусматривает переход в первую очередь к вершинам, ближайший к стартовой вершине. В результате процесс поиска имеет тенденцию развиваться более в ширину, чем в глубину, что иллюстрирует
23. Понятие графа. Способы представления графа
23. Понятие графа. Способы представления графа Граф – пара G = (V,E), где V – множество объектов произвольной природы, называемых вершинами, а E – семейство пар ei = (vil, vi2), vijOV, называемых ребрами. В общем случае множество V и (или) семейство E могут содержать бесконечное число
24. Различные представления графа
24. Различные представления графа Для реализации графа в виде списка инцидентности можно использовать следующий тип:Type List = ^S;S = record;inf: Byte;next: List;end;Тогда граф задается следующим образом:Var Gr: array[1..n] of List;Теперь обратимся к процедуре обхода графа. Это вспомогательный