Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Поиск в графе 2

.pdf
Скачиваний:
18
Добавлен:
03.05.2015
Размер:
1.34 Mб
Скачать

Задача поиска в графе

Поиск в глубину

 

 

Формулировка алгоритма

3. Если список смежности v просмотрен до конца, то Stack:Pop() (удаляем v из стека)

Иначе получаем очередной элемент списка смежности (u := copyList[v]:GetNext()).

а) Если u еще не посещалась (Visit[u] = 0), то

Stack:Push(u);

Расин О.В.

Поиск в графе

 

 

Задача поиска в графе

Поиск в глубину

 

 

Формулировка алгоритма

3. Если список смежности v просмотрен до конца, то Stack:Pop() (удаляем v из стека)

Иначе получаем очередной элемент списка смежности (u := copyList[v]:GetNext()).

а) Если u еще не посещалась (Visit[u] = 0), то

Stack:Push(u); Visit[u] := 1;

Расин О.В.

Поиск в графе

 

 

Задача поиска в графе

Поиск в глубину

 

 

Формулировка алгоритма

3. Если список смежности v просмотрен до конца, то Stack:Pop() (удаляем v из стека)

Иначе получаем очередной элемент списка смежности (u := copyList[v]:GetNext()).

а) Если u еще не посещалась (Visit[u] = 0), то

Stack:Push(u); Visit[u] := 1; Father[u] := v,

Расин О.В.

Поиск в графе

 

 

Задача поиска в графе

Поиск в глубину

 

 

Формулировка алгоритма

3. Если список смежности v просмотрен до конца, то Stack:Pop() (удаляем v из стека)

Иначе получаем очередной элемент списка смежности (u := copyList[v]:GetNext()).

а) Если u еще не посещалась (Visit[u] = 0), то

Stack:Push(u); Visit[u] := 1; Father[u] := v, num[u] := counterNum,

Расин О.В.

Поиск в графе

 

 

Задача поиска в графе

Поиск в глубину

 

 

Формулировка алгоритма

3. Если список смежности v просмотрен до конца, то Stack:Pop() (удаляем v из стека)

Иначе получаем очередной элемент списка смежности (u := copyList[v]:GetNext()).

а) Если u еще не посещалась (Visit[u] = 0), то

Stack:Push(u); Visit[u] := 1; Father[u] := v, num[u] := counterNum, counterNum + +

Расин О.В.

Поиск в графе

 

 

Задача поиска в графе

Поиск в глубину

 

 

Формулировка алгоритма

3. Если список смежности v просмотрен до конца, то Stack:Pop() (удаляем v из стека)

Иначе получаем очередной элемент списка смежности (u := copyList[v]:GetNext()).

а) Если u еще не посещалась (Visit[u] = 0), то

Stack:Push(u); Visit[u] := 1; Father[u] := v, num[u] := counterNum, counterNum + +

б) Если Visit[u] = true, то не производим с u никаких действий

Расин О.В.

Поиск в графе

 

 

Задача поиска в графе

Поиск в глубину

 

 

Формулировка алгоритма

3. Если список смежности v просмотрен до конца, то Stack:Pop() (удаляем v из стека)

Иначе получаем очередной элемент списка смежности (u := copyList[v]:GetNext()).

а) Если u еще не посещалась (Visit[u] = 0), то

Stack:Push(u); Visit[u] := 1; Father[u] := v, num[u] := counterNum, counterNum + +

б) Если Visit[u] = true, то не производим с u никаких действий

Перейти к шагу 2.

4. Все вершины графа просмотрены, и алгоритм заканчивает работу.

Расин О.В.

Поиск в графе

 

 

Задача поиска в графе

Поиск в глубину

 

 

Пример работы алгоритма

v4

v1

v3

v2

 

v5 v6

v8 v9

Рассмотрим граф на рис.

v7

Расин О.В.

Поиск в графе

 

 

Задача поиска в графе

Поиск в глубину

 

 

Пример работы алгоритма

v4

v1

v3

v2

 

v5 v6

v8 v9

v7

Рассмотрим граф на рис.

вершины в списке смежности упорядочены по возрастанию индекса

Расин О.В.

Поиск в графе

 

 

Задача поиска в графе

Поиск в глубину

 

 

Пример работы алгоритма

v4

v1

v3

v2

 

v5 v6

v8 v9

v7

Рассмотрим граф на рис.

вершины в списке смежности упорядочены по возрастанию индекса

в качестве начальной вершины поиска возьмем v1

Расин О.В.

Поиск в графе