
Поиск в графе 2
.pdf
Задача поиска в графе |
Поиск в глубину |
|
|
Формулировка алгоритма
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
Расин О.В. |
Поиск в графе |
|
|