Изменения

Перейти к: навигация, поиск
Псевдокод
== Псевдокод ==
Функция <tex>\mathtt{findHamiltonianCycle}</tex> получает на вход граф <tex> G </tex > и находит гамильтонов цикл в нем.
* <tex> queue </tex> {{---}} очередь вершин графа <tex>G = \left \langle {V, E} \right \rangle</tex>
{| width = 100%
|-
|
'''function''' findHamiltonianCycle(<tex>\mathttleft \langle {findHamiltonianCycleV, E}(G):\right \rangle</tex> Queue queue):
'''for''' <tex> v \in V</tex>: <font color = "green">// Добавляем все вершины графа в очередь</font>
queue.pushBack(<tex>v</tex>)
'''for''' k = 0...n*(n - 1) '''if''' (queue.at}(0), queue.at(1)) <tex> \notin E</tex> <font color = "green">// Проверяем существования ребра между первой и второй вершинами очереди</font>
i = 2
'''while''' (queue.at(0), queue.at(i)) <tex> \notin E</tex> '''or''' (queue.at(1), queue.at(i + 1)) <tex> \notin E</tex>
i++ <font color = "green">// Ищем индекс удовлетворяющую условию вершины</font>
queue.swapSubQueue(21, i) <font color = "green">// Разворачиваем часть перестановки от 21-й до найденной позиции включительно</font>
queue.pushBack(queue.top())
queue.pop()
Анонимный участник

Навигация