제목에 설명되어 있습니다. 내가 만든 일반 트리에서 이진 검색 트리를 만들려고합니다. 내 일반 노드 클래스의 코드는 다음과 같습니다일반 트리에서 이진 검색 트리를 만드는 방법
Node<E> parent;
E data;
ArrayList<Node<E>> children = new ArrayList<Node<E>>();
public Node(E data){
this.data = data;
}
public ArrayList<Node<E>> getChildren(){
return this.children;
}
public void addChild(Node child){
int counter = 0;
for (int i = 0; i < children.size(); i++){
if (child.toString().equals(children.get(i).toString())){
System.out.println("already exists");
counter++;
}
}
if (counter > 0){}
else{
children.add(child);
}
}
public void removeChild(Node<E> child){
children.remove(child);
}
public Node<E> getChild(Node<E> child){
for (int i = 0; i < children.size(); i++){
if (children.get(i) == child){
return child;
}
}
return null;
}
public void setParent(Node parent){
this.parent = parent;
}
public Node<E> getParent(){
return this.parent;
}
public boolean isDirectory(Node node){
if (data == node.data){
return false;
}
return true;
}
public boolean hasChildren(){
return getChildren() != null;
}
public E getData(){
return this.data;
}
public String toString(){
return data.toString();
}
}//end class
그리고 내 나무 클래스 그렇게 모든 너희들에게 눈의 피로를 저장, 가장자리에 방법이 가득, 내 나무 클래스는 루트 및 설정하는 생성자로 구성 루트는 트리의 루트입니다. 일반 트리를 이진 검색 트리로 변환하려면 이진 검색 트리의 루트에 일반 트리 루트를 설정해야합니다. 내 질문은 그 때 어디에서부터 나가야합니까? 이진 검색 트리에 노드를 추가하기 위해 일반 트리를 어떻게 트래버스합니까? 어떤 도움을 주시면 감사하겠습니다. 이 자식 노드의 임의의 번호를 가지고 그 노드가 특정 순서가 없기 때문에 검색하지 수 있기 때문에
비 2 진 트리 노드를 2 진 노드로 나눕니다. 연속적으로 정렬 된 두 개의 자식 노드는 모두 하나의 자식 노드가있는 이진 노드 자식으로 바꿀 수 있습니다. 노드) - BST는 정의에 따라 균형을 유지할 필요가 없지만 작업별로 다른 제한이 적용될 수 있습니다. 트리의 끝에 균형을 조정해야하는 경우 다양한 방법으로 회전을 수행하려면 http://en.wikipedia.org/wiki/Self-balancing_binary_search_tree를 참조하십시오. – user2864740
이진 검색 트리에는 트리 순서를 빌드하는 데 필요한 검색 키가 저장되어 있습니다 (예 : 데이터). 여기 열쇠가 뭐니? –