Я пытаюсь смоделировать случайный обход через ориентированный сетевой граф. Псевдокод выглядит следующим образом
Create graph G with nodes holding the value true or false.
// true -> visited, false -> not visited
pick random node N from G
save N.successors as templist
while true
nooptions = false
pick random node N from templist
while N from templist has been visited
remove N from templist
pick random node N from templist
if templist is empty
nooptions = true
break
if nooptions = true
break
save N.successors as templist
Есть ли более эффективный способ отметить путь как пройденный, кроме создания временного списка и удаления элементов, если они отмечены как посещенные?
ИЗМЕНИТЬ
Цель алгоритма — случайным образом выбрать узел в графе. Выберите случайного преемника/потомка этого узла. Если его никто не посещал, перейдите туда и отметьте его как посещенный. Повторяйте до тех пор, пока не останется преемников/потомков или пока не останется непосещенных преемников/потомков.