2016-10-16 1 views
-1

저는 데이터 구조에서 클래스를 사용하고 있으며 C를 사용하여 미로를 통과하는 최단 경로를 찾고 큐 데이터 구조를 구현하는 과제가 주어졌습니다. 그러나 여기서 큐를 사용하는 방법에 대해 정말로 머리를 감쌀 수는 없습니다.큐 데이터 구조를 사용하여 미로를 해결 하시겠습니까?

나는 생각은 시작 위치에서 가능한 모든 이동을 계산하는 것이고, 목표를 명중하면 초기 위치로 되돌아 가야한다는 것을 알고있다. 이것은 내가 이해하지 못하는 것입니다. 대기열을 사용하고 대상까지 이어지는 모든 이동을 삭제하면 추적을 수행하는 데 사용할 데이터가 없기 때문에 대상으로 연결되는 이동을 삭제하지 않으면 (즉 모든 가능한 저장 이동 및 삭제 실제로 내가 추적을 할 때), 나는 스택을 사용할 수도있다.

나는 꽤 얻지 못하는 것을 알고 있지만 그것이 무엇인지 알 수 없다. 이 경우 대기열 데이터 구조를 어떻게 활용합니까?

+1

투표를 거절하는 경우 질문에 대한 질문이 왜 잘못되었는지 설명하십시오. 나에게 코드를 적어달라고하는 것이 아니다. 나는 올바른 방향으로 나를 가리켜 줄 것을 요청하고 있으므로 코드를 직접 작성할 수 있습니다. – Lobs001

+0

여기에 포즈를 취하기 전에 인터넷 검색을 시도해 보셨습니까? – roottraveller

+0

@rootTraveller 물론, 내가 이해할 수있는 충분한 충분한 답을 찾았 으면 나는 그것을 요구하지 않았을 것입니다. 다른 설명을 듣고 읽었음에도 불구하고 완전히 이해하지 못하기 때문에 묻습니다. 그럼에도 불구하고 내 질문에 대한 답변이나 내게 유익하다고 생각되는 설명이 있으면 인터넷에 관한 이야기를 듣고 싶습니다. 다시 말하면 솔루션 자체에 대한 것이 아니라 설명 방법에 관한 것입니다. – Lobs001

답변

2

교수님이 사용하기 위해 노력하고있는 것을 너비 우선 검색이라고합니다. 대기열은 다음 탐색 할 공간을 결정하기 위해 제공됩니다. 가능한 경로를 살펴볼 때 아직 탐색하지 않은 모든 경로를 대기열에 넣습니다. 현재 진행중인 경로를 계속 진행하는 대신 ("깊이 우선 검색"), 확인해야하는 다음 지점을 대기 행렬에서 빼내므로 이전에 고려했던 위치 중 하나로 다시 이동합니다.

실제 구현은 귀하에게 달렸습니다. 온라인으로 폭 넓은 우선 검색 예제를 찾는 것이 좋습니다.

+0

답변 주셔서 감사합니다! 그래서 시작 위치에 있으면 전체 미로가 대기열에 포함 (즉, 유효하지 않은 위치 (예 : '벽'제외)) 된 다음 해당 위치에서 대기열에 있습니다. – Lobs001

+1

@ Lobs001 처음에는 아주 가까운 위치에 대기시킬 수 있습니다. 그런 다음이 위치 중 하나를 방문하면 다음 위치를 대기열에 추가하지만 대기열의 다음 항목은 시작과 가장 가까운 다른 항목입니다. 설명하기가 어렵습니다. 'bfs 길 찾기 알고리즘'또는 그 밖의 동영상을 찾는 것이 좋습니다. – Lorenzo

+1

고마워. 내가 추천 한 것들을 들여다보고 다른 것을 나눠 줄 것이다. – Lobs001

관련 문제