2017-11-07 1 views
0

이진 트리를 역순으로 그려야합니다. 예를 들어 4 개의 요소가 있습니다. 잎 노드에 넣고 다음 반복에서 하나의 루트 노드가 생길 때까지 두 개를 결합합니다. 모든 부모는 새로운 부모를 만드는 데 사용되는 ID를가집니다. 노드에는 모든 객체가 포함됩니다. 주문은 의무 사항이 아닙니다. 두 개의 노드는아래쪽을 그리는 방법 이진 트리

예는 다음과 같이 어떤 순서로 할 수있다 이러한 노드 다음 반복과 마지막 수준에서 결합 할 수 있습니다

binary tree

이 이해 단지 예입니다. 솔루션은 설명을 위해 모든 언어 또는 알고리즘을 사용할 수 있습니다.

+3

몇 가지 코드를 작성하는 것처럼 보입니다. 많은 사용자가 조난중인 코더에 대한 코드를 기꺼이 작성하려고하지만 일반적으로 포스터가 이미 문제를 해결하려고 시도했을 때만 도움이됩니다. 이러한 노력을 보여주는 좋은 방법은 [최소한의 완전하고 검증 가능한 예] (http://stackoverflow.com/help/mcve)를 포함시키는 것입니다. 게시하기 전에 끝내기로되어있는 [인트로 투어] (https://stackoverflow.com/tour)를 확인하십시오. 특히 [How to Ask] (http://stackoverflow.com/help/how-to-ask) . – Prune

+0

코드 btw가 필요하지 않습니다. 직접 해결할 수 있습니다. 나는 누군가가 아이디어를 가지고 있다면 다른 사람들의 도움으로 논리를 구축하려고 노력 중이다. – afaq

+0

여러 가지 방법을 시도하고 검색했지만 내 목표와 관련된 것을 찾을 수 없습니다. 당신이 누군가를 타락 시키려고 여기에 있다면 다른 곳을 찾아야합니다. 나는 경험이있는 사람이 아닐 수도 있습니다. – afaq

답변

1

레벨 순회를 사용하여 각 레벨의 내용을 문자열에 저장합니다. 각 레벨이 끝나면 문자열을 인쇄하십시오.

이것은 기본입니다.

위와 같은 멋진 출력물을 원한다면 요소를 배치하는 더 나은 방법을 살펴보고 그래픽 라이브러리를 사용하여 노드를 표시 할 수 있습니다.

+0

하나 더 혼란이 있습니다. 왼쪽 또는 오른쪽에 관계없이 노드를 위쪽으로 결합하려고합니다. 예제 번호에는 순서가 있습니다. 하지만 내 객체는 순서가 없습니다 – afaq

+0

편도는 파이썬의 트리 기능을 사용합니다. https://stackoverflow.com/questions/2358045/how-can-i-implement-a-tree-in-python-are-there-any-built-in-data-structures-이 링크는 도움이 될 수 있습니다. –