212
правок
Изменения
→Псевдокод
|-
|
<font color = "green">// g[][] - булевская матрица смежности</font> '''Queue ''' queue <font color = "green">// создаем очередь</font> '''for ''' i = 0 '''to ''' n - 1 queue.pushBack(v[i]) <font color = "green">// добавляем в очередь все вершины графа</font> '''for ''' k = 0 '''to ''' n*(n - 1) <font color = "green">// пока не проделано нужное количество итераций</font> '''if ''' '''not ''' g[queue.at(0), queue.at(1)] <font color = "green">// проверяем существования ребра между первой и второй вершинами очереди</font>
i = 2
'''while ''' '''not ''' g[queue.at(0), queue.at(i)] '''or ''' '''not ''' g[queue.at(1), queue.at(i + 1)] <font color = "green">// ищем индекс удовлетворяющую условию вершины</font>
i++
queue.swapSubQueue(2, i) <font color = "green">// разворачиваем часть перестановки от 2-й до найденной позиции включительно</font> queue.pushBack(queue.top()) <font color = "green">// Добавляем первую вершину в конец очереди</font> queue.pop() <font color = "green">// а из начала очереди удаляем</font>
|}