광범위한 첫 번째 검색을위한 표준 의사 코드는 다음과 같습니다.
{ seen(x) is false for all x at this point }
push(q, x0)
seen(x0) := true
while (!empty(q))
x := pop(q)
visit(x)
for each y reachable from x by one edge
if not seen(y)
push(q, y)
seen(y) := true
다음 push
과 pop
큐 동작으로 간주된다. 그러나 스택 작업 인 경우 어떻게해야합니까? 결과 알고리즘은 깊이 우선 순서로 정점을 방문합니까?
"이것은 사소하다"라는 의견에 투표했다면 왜 사소한 지 설명해달라고 부탁합니다. 문제가 상당히 까다 롭습니다.
5
나는 학생들이 이것으로 어려움을 겪는 것을 보았으므로 그것이 너무 간단하다고 생각하지 않습니다. 그러나 대답에 "예"또는 "아니오"이외의 것은 무엇입니까? 원하는 세분성은 질문에서 명확하지 않습니다.
—
Raphael
"예"는 설득력있는 주장과 함께 올 것이다. "아니오"는 반례와 함께 올 것이다. 그러나 무슨 일이 일어나고 있는지 이해하면 예 / 아니오보다 더 나은 답변이 있습니다 ...
—
rgrig
@Joe, Dave : 다음 메타 토론을
—
Gilles 'SO-stop
의사 코드를 작성
—
Joe
pop
하여 스택 또는 대기열 작업으로 간단히 변경함으로써 dfs 또는 bfs를 얻을 수 있습니다. 처음에는 이것이 사실 인 것처럼 보이지만 의사 코드를 작성하는 것도 쉽습니다. ics.uci.edu//~eppstein/161/960215.html 은 관련 참조입니다.