이미 이진 트리 (inorder, postorder 등)를 트래버스하는 방법을 알고 있습니다. 그러나 문제는 트리를 통과하여 노드와 위치를 인쇄하는 것입니다. 이것은 각 노드마다 키와 위치를 인쇄해야 함을 의미합니다. 어떻게 이런 것들을하는 알고리즘을 실제로 구현할 수 있습니까?트리를 탐색하여 각 노드와 그 위치를 인쇄하십시오.
0
A
답변
0
(Java 또는 의사에)의 당신이
void TraverseTree(Node node)
{
System.out.println("Key: " + node.Key); // print key
System.out.println("Position: " + node.Position); // print position
System.out.println(); // print empty row
TraverseTree(node.Left);
TraverseTree(node.Right);
}
재귀 탐색 방법 (전순 깊이 우선 탐색)가 있다고 가정 해 봅시다 그리고 당신은 호출하여 시작 :
TraverseTree(root);
출력이됩니다 트리를 가로 지르도록 선택한 방법에 따라 순서가 정해집니다. 깊이 우선 선주문, inorder, postorder ir breath-first.
void TraverseTree(Node node, int position)
{
System.out.println("Key: " + node.Key);
System.out.println("Position: " + position); // different position print
System.out.println();
TraverseTree(node.Left, position + 1); // different calls
TraverseTree(node.Right, position + 1);
}
을 그리고처럼 호출하여 탐색을 시작합니다 :
열쇠는 항상 노드에 어딘가에 있어야한다, 당신은 그런 식으로 위의 방법을 확장하여 위치를 셀 수
TraverseTree(root, 0); // counting position from 0
TraverseTree(root, 1); // counting position from 1
을
그런 다음 위치는 트리를 탐색하는 방법에 따라 달라집니다.
+0
나는 이것이 OP가 원하는 것이라고 생각하지 않는다. 'position'이 모든 노드 내부에 있다면, 큰 문제는 무엇입니까? –
+0
더 많은 것을 추가했습니다. 아마도 도움이 될 것입니다. – Santhos
관련 문제
- 1. 이진 트리를 탐색하여 각 노드의 값을 변경 하시겠습니까?
- 2. DOM 트리를 탐색하여 parentNode에 대한 정보를 표시합니다.
- 3. 입력을 요청하고 배열에서 그 위치를 인쇄하십시오.
- 4. C++ 바이너리 검색 트리를 인쇄하십시오.
- 5. 주어진 노드와 그 위치의 파이썬에서 트리 만들기
- 6. 데이터 프레임의 각 행을 탐색하여 수동으로 분류하십시오.
- 7. 파이썬 : 노드와 호에 데이터가있는 트리를 작성하십시오.
- 8. 코디네이터 노드와 그 성능에 미치는 영향
- 9. XML - 패턴을 기반으로 노드와 그 내용을 제거하십시오.
- 10. 각 배열의 내용을 읽고/인쇄하십시오.
- 11. 각 페이지를 다른 페이지에 인쇄하십시오.
- 12. 배열에 중복 된 숫자의 위치를 인쇄하십시오.
- 13. javascript의 각 노드를 탐색하여 xml 데이터를 구문 분석합니다.
- 14. 배열의 위치와 그 위치의 번호를 인쇄하십시오.
- 15. 이미지에서 라인과 그 위치를 감지합니다.
- 16. Bash : 새 줄에 각 입력 문자열을 인쇄하십시오.
- 17. 각 매개 변수 이름과 해당 값을 인쇄하십시오.
- 18. 어레이의 각 번호와 반복 된 시간을 인쇄하십시오.
- 19. 각 열의 첫 단어를 한 행으로 인쇄하십시오.
- 20. 각 범위의 숫자를 기준으로 별을 인쇄하십시오.
- 21. DOM을 탐색하여 이미지 패스 백
- 22. UIImageViews와 그 위치를 수퍼 뷰에 저장
- 23. 각 잎의 루트를 기준으로 트리를 구현
- 24. 여러 수준의 트리를 탐색하여 현재 요소의 이전 요소와 다음 요소를 찾는 방법?
- 25. tbb 플로우 그래프에서 노드와 그 자식의 실행을 중단하는 방법
- 26. PHP, XML - 자식 노드와 그 속성 가져 오기
- 27. PHP +의 XPath 쿼리 얻을 자식 노드와 그 값은
- 28. groovy를 사용하여 XML 노드와 그 값을 가져 오는 방법은 무엇입니까?
- 29. 콘크리트 노드와 각 노드 사이의 연결이 서브 패스에있을 때
- 30. 개체 모델을 반복적으로 탐색하여 값을 검색하십시오.
무엇에 대해 혼란스러워합니까? – Jiminion
당신은 recoursion이 필요합니다. 죄송합니다. –
왜 재귀가 필요한가요? 단순히 이전, 이후 또는 사이에 다른 노드로 이동하면 키와 위치를 매개 변수로 사용하여 System.out.printl 명령을 배치합니다. – Santhos