> 백엔드 개발 > C++ > 너비 우선 검색은 대기열을 사용하지 않습니다.

너비 우선 검색은 대기열을 사용하지 않습니다.

WBOY
풀어 주다: 2023-09-16 21:57:03
앞으로
1242명이 탐색했습니다.

너비 우선 검색은 대기열을 사용하지 않습니다.

BFS(Breadth First, Look)는 그래프에서 폭 운동의 중심을 연구하는 데 사용되는 그래프 순회 계산입니다. BFS의 일반적인 사용은 회선 정보 구조를 활용하여 들어오는 허브를 추적합니다. 그럼에도 불구하고, 명시적 와이어를 사용하지 않고 BFS를 수행하기 위해 다른 정보 구조를 활용하는 것이 가능합니다.

와이어 없이 BFS를 구현하는 또 다른 방법은 두 개의 클러스터 또는 레코드를 활용하는 것입니다. 하나는 조사 중인 현재 수준의 허브용이고 다른 하나는 조사할 다음 수준 허브용입니다. 처음에는 현재 수준 목록에 소스 센터가 포함되어 있습니다.

계산은 현재 레벨 목록을 먼저 강조 표시하고 각 허브로 이동합니다. 통과된 각 허브에 대해 인접한 허브가 검사됩니다. 인접한 허브를 방문하지 않은 경우 방문으로 표시되고 다른 수준 목록에 추가됩니다. 핸들은 현재 레벨 목록의 모든 허브가 전달될 때까지 계속됩니다.

현재 레벨 목록이 완전히 탐색되면 계산은 다른 레벨 목록으로 계속 진행되며 허브로 가는 길을 다시 해시하고 다음 레벨 목록에 액세스합니다. 이 준비는 방문하지 않은 노드가 더 이상 없을 때까지 계속됩니다.

사용방법

폭 우선 접근 방식

폭 우선 접근 방식

BFS 알고리즘은 소스 허브에서 시작하여 이웃을 조사하고 가장 최근에 다른 수준의 이웃으로 이동했습니다. 회선 정보 구조를 사용하여 방문하는 허브를 추적하세요. 각 주기에서 계산은 허브를 방문하여 완료된 것으로 표시하고 방문하지 않은 인접한 허브를 대기열에 추가합니다. 이 준비는 접근 가능한 모든 센터를 방문할 때까지 계속됩니다.

코드는 차트의 감염 목록을 나타내기 위해 벡터 조정을 초기화합니다. 벡터의 각 파일은 중심과 비교되며, 기록된 각 값에는 인접한 중심이 포함됩니다. BFS 순회는 소스 허브, 허브 수 N, 허브를 통과하는 벡터 vis, 별도의 dp 및 방문할 허브를 추적하는 데 사용되는 벡터 v를 사용하는 BFS 작업에 의해 수행됩니다. bfsTraversal 작업은 사라진 허브를 초기화하고 벡터를 삭제한 다음 BFS 작업을 호출하여 순회를 수행합니다.

알고리즘

  • 그래프의 감염 목록 표현을 만듭니다.

  • 접근할 허브를 저장하기 위한 라인을 초기화하세요.

  • 사라지는 노드를 추적하려면 사라지는 클러스터를 초기화하세요.

  • 소스 허브에서 삭제된 콘텐츠를 각 허브에 저장하려면 삭제 클러스터를 초기화하세요. 소스 허브의 구분 기호를 0으로 설정합니다.

  • 소스 허브를 대기열에 추가하고 액세스되었는지 확인하세요.

  • 파이프라인을 정제할 수는 없지만 다음을 수행하십시오.

  • 대기열의 선두에 있는 허브를 삭제하세요. 대기열에서 제외되었지만 아직 통과되지 않은 각 인접 허브에 대해 다음을 수행합니다. 인접 허브를 대기열에 추가합니다. 인접한 허브를 방문한 것으로 표시합니다. 허브 삭제를 대기열에서 제거하도록 인접 허브 삭제를 업데이트했습니다(또한 1).

  • 행이 빌 때까지 6단계를 반복하세요.

  • BFS 순회가 완료된 후 별도의 클러스터에는 소스 노드에서 그래프의 다른 모든 중심까지의 간격이 포함됩니다.

  • (선택 사항) BFS 순회에서 각 허브의 상위 허브를 추적하여 가장 쉬운 방법으로 소스 허브에서 다른 모든 허브로 이동할 수도 있습니다.

으아아아

출력

으아아아

으아아아

출력

으아아아

결론

이 문서에서는 행 정보 구조를 사용하지 않고 너비 우선 검색(BFS) 계산을 설명합니다. BFS 계산은 일반적으로 지정된 소스 센터에서 시작하여 단계별 방식으로 차트를 탐색하는 데 사용됩니다. 일반적으로 경로는 이동할 허브를 저장하는 데 사용됩니다. 그럼에도 불구하고 이 문서에서는 기본 목록이나 클러스터링을 활용하여 다음 수준의 허브를 저장하는 대체 접근 방식을 검토합니다.

이 선택적인 사용은 그래프에 대한 폭 우선 연구를 완성합니다. 이 기사에서는 감염 기록 초기화, 이동 및 분리 클러스터 유지, 원을 사용하여 중앙 수준 강조 등 BFS 계산 단계를 추적합니다. 또한 한 줄도 사용하지 않고 BFS 탐색을 설명하는 C 코드 지침도 제공합니다. 코드는 그래프를 정확하게 연구하고 BFS 순열 순열을 인쇄하며 소스 허브에서 다른 모든 노드까지의 거리를 계산합니다. 전반적으로 이 기사는 선을 사용하지 않고 BFS 계산에 대한 명확한 설명과 실행 가능한 사용법을 제공하며 너비 우선 방식으로 그래프를 탐색하는 대체 접근 방식을 보여줍니다.

위 내용은 너비 우선 검색은 대기열을 사용하지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿