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

Матеріал з Вікіпедії — вільної енциклопедії.

Перейти до: навігація, пошук
Порядок обходу вершин.

Алгори́тм пошуку́ в глибину́ (англ. Depth-first search, DFS) — алгоритм для обходу дерева, структури подібної до дерева, або графа. Робота алгоритма починається з кореня дерева (або іншої обраної вершини в графі) і здійснюється обхід в максимально можливу глибину до переходу на наступну вершину.[1]

[ред.] Псевдокод

Рекурсивна версія алгоритму:[2]

def dfs(v):
    помітити v як відвідану
    обійти-в-прямому-порядку(v)
    для всіх ребер i інцидентних до v таких що i не відвідано
        dfs(i)
    обійти-в-зворотньому-порядку(v)

Версія без рекурсії:

dfs(граф G)
{
  список L = порожній
  дерево T = порожнє
  обрати початкове ребро x
  пошук(x)
  поки(L не порожній)
  {
    видалити ребро (v, w) з голови L
    якщо w не відвідано
    {
      додати (v, w) до T
      пошук(w)
    }
  }
}
   
пошук(вершина v)
{
  відвідати v
  для кожного ребра (v, w)
    додати ребро (v, w) на початок L
}

[ред.] Примітки

  1. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. «22.3», Introduction to Algorithms, вид. 2-ге (2001) (англ. ), 540-549, MIT Press. ISBN 0-262-03293-7.
  2. див. алгоритм наведений на англ. вікі.

[ред.] Див. також


Комп'ютер Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.
Особисті інструменти