Для поиска в глубину я бы использовал рекурсивную функцию и передавал бы int текущего узла и список уже посещенных в нем узлов, повторял это до тех пор, пока не будут посещены все узлы, и не возвращался бы к рекурсии, чтобы перейти к следующему.вместе с посещением всех
check node(currentNode, ListOfVisited)
check=0
while(check!=n)//where n is the size of the array
if (matrix.get(check,currentNode) is not in ListOFVisited)
add n to listOfVisted
checkNode(currentNode, ListOfVisited)
end while
// этот код будет вызываться при возврате функции
check++
end while
для первого поиска. Я бы также сделал это рекурсивноно сначала проверьте всех соседей и удерживайте их в очереди, а затем повторите через очередь после
queue is empty
checknode(node, visited)
check=0
while(check!=n)
if (matrix.get(check,currentNode) isn't in visited)
queue.add(check)
end if
check++
end while
while(queue isn't empty)
checkNode(queue.pop)
end while