나는 네 가지 유형 (정수, 더블, 문자열 및 문자) 중 하나만을 사용하는 일반적인 멀티 웨이 트리를 만들고 있습니다. 비교할 수있는 인터페이스와 삽입 기능에 문제가 있습니다. 여기 내 콘솔 출력됩니다 public class BTree<T extends Comparable<? super T>>
{
private int m=0, height=0,
다차원 트리에서 가장 긴 경로를 찾는 것과 거의 완벽하게 매핑 될 수있는 적용된 수학 문제가 있습니다. 자식 노드 (조건을 만족하는 공간의 점)를 제공하는 child() 함수가 있습니다. 유일한주의 사항은 child()가 루트 노드를 포함하여 이전 노드를 모두 연결해야한다는 것입니다. 여기서 내가 재귀 적으로 코드를 작성하기 위해 고심하고있는 곳이다. 지금
가정하자 내가 가진 내가 6 (1)의 후손 (이것은이다)인지 확인 할 parent | child
1 2
1 3
2 4
4 5
5 6
이 테이블 .... 내가 할 수있는 하나의 쿼리 내에서이 작업을 수행해야합니까? 그렇지 않으면 필연적으로 모든 데이터를 가져 와서 PHP로 처리해야합니
루트 노드가 임의의 양의 자식 노드를 가질 수있는 비 이진 트리를 구현하는 데 문제가 있습니다. 기본적으로, 나는 어떤 코드를 작성 했으므로 어디로 가야하는지에 대한 아이디어를 원하지만, 다음에해야할 일에 관해서는이 시점에서 붙어있다. BTW 나는 Collections 클래스를 전혀 사용할 수 없다. 시스템 만 사용할 수 있습니다. using System;
트리는 위에 표시된 이미지처럼 부모 노드가 항상 그 자식보다 작아야한다는 불변성을 가지고 있습니다. 이제 노드의 키 중 일부가 변경되어 불변성이 깨 졌다고 가정하고 불변성을 유지하려고합니다. 기본적으로 부모 노드의 모든 자식을 비교 스왑한다고 생각하지만 트리를 탐색하는 재귀를 작성하는 방법을 알아낼 수 없습니다. 이전에 배운 이진 트리와 다릅니다. Btw
트리의 선행 트래버스를 수행하는 방법을 구현했습니다.이 트리는 2 진 트리가 아닙니다. 이 나무의 모든 부모 노드는 아이의 배열을 가지고, 그래서 이것은 내가 사용하고있는 방법입니다 : 연결 어린이의 void preorderTraversal(TreeNode tree)
{
if (tree == null)
return;
S
다음과 같은 문제에 대해 누군가가 내 코드보다 단순화 된 솔루션이나 개선점을 제공 할 수 있는지 궁금합니다. 우리가 가지 어떤 깊이로 "D"가는 그리고 우리는 우리가 깊이 D에서 나뭇 가지와 다음 다른 n 개의 지점에서 "N" 을 유지하도록이 나무를 손질하고 싶습니다과 나무가 말 깊이 d-1; 다음 D-2 등 또 다른 N 가지 ... 내 솔루션에서 나는 추