2012-04-04 2 views
0

동적 프로그래밍의 경우 트리를 저장하는 몇 가지 방법은 무엇입니까?C++에서 트리 표현하기

나는 좌회전과 최소화 우회로로 미로를 해결해야하는 임무를 수행하고 있습니다. 내가 가진 아이디어는 가능한 모든 경로를 나무에 저장 한 다음 트리를 통과하여 최소 우회전을 찾습니다. 코드를보다 효율적으로하기 위해, 언제는 경로 중 하나

a)는 좌회전 b)는 현재 가장 잘 알려진 솔루션

보다 더 우회전와 솔루션 I 트리에 추가되지 않습니다 포함한다. 바라기를 나는 여기서 내가 무엇을하고 있는지 분명히 이해하고있다. 나는 이것에 대한 의견을 정말로 감사한다.

저장중인 나무는 미로에 가능한 모든 방향을 포함하며 각 어린이의 부모는 이전 위치가됩니다. 나는 어떤 부모들은 2 명 이상의 아이들을 가질 것이라고 믿는다.

이런 종류의 트리를 저장하는 가장 좋은 방법은 무엇입니까?

미리 감사드립니다.

+1

나무를 저장하거나 미로를 해결해야합니까? – WeaselFox

+0

아, 그래. 나는 나무를 저장하는 가장 좋은 방법이 무엇인지 궁금 할뿐입니다. 나는 단지 2 명의 아이들 만있는 나무를 다루었 기 때문에 나는 혼란스럽고 우둔합니다. – michcs

+0

[flood fill] (http://en.wikipedia.org/wiki/Flood_fill) 또는 [BFS] (http://en.wikipedia.org/wiki/Breadth-first_search)를 적용 할 수 없습니까? – foxx1337

답변

0

문제가 미로를 해결하는 것이면 그러한 트리를 만드는 대신 backtracking을 사용하는 것이 좋습니다. 트리를 만들어야하는 경우, 우회전 할 수있는 모든 교차점을 노드로 표시하고 오른쪽으로 돌리면 자식이 다음 교차점, 그렇지 않은 경우 자식이 교차하는 트리를 사용할 수 있습니다. 내가 너를 정확하게 이해하는지 모르겠다.하지만 계속하는 법에 대한 조언을 해주기를 바란다.