48
правок
Изменения
Нет описания правки
<code>
Enum(s, i, <tex>r_i</tex>, G)
counter := 0 //''количество уже найденных и выведенных элементов''
'''for''' v = 1 .. n '''do''' //''перебираем все вершины графа''
counter++
yield return v //''выдаем вершину, до которой угадали путь''
''if'' counter ≥ <tex>\ge r_i </tex> ''then'' //''нашли <tex>r_i </tex> вершин, принимаем и завершаем работу''
ACCEPT
REJECT //''не нашли <tex>r_i </tex> вершин, отклоняем''
</code>
<code>
Next(s, i, <tex>r_i</tex>, G)
r := 1 //''<tex>r_{i+1}</tex> хотя бы один, так как <tex>s \in R_{i + 1}</tex>''
'''for''' v = 1 .. n; <tex>v \neq s</tex> '''do''' //''перебираем все вершины графа, кроме s -- это кандидаты на попадание в <tex>R_{i + 1}</tex>''
'''for''' u : (u,v)∈E '''do''' //''перебираем все ребра, входящие в v''
r++ //''увеличиваем количество найденных вершин и переходим к рассмотрению следующего кандидата''
break
</code>
'''for''' i = 0..n-2 '''do''' //''Вычисляем <tex>r_{n - 1}</tex>''
<tex>r_n</tex> := Next(s, i, <tex>r_n</tex>, G)
REJECT
'''else'''