이진 탐색트리 삽입
클래스 두개로 구성
1. Node 클래스 -- 1.값을 담을수 있는 변수 ex) int value= 0 ;
-- 2.왼쪽 노드의 주소값을 담을 수 있는 변수 ex) Node leftNode=null;
-- 3. 오른쪽 노드의 주소값을 담을 수 있는 변수 ex)Node rightNode=null;
public class Node {
int value=0;
Node leftNode=null;
Node rightNode=null;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public Node getLeftNode() {
return leftNode;
}
public void setLeftNode(Node leftNode) {
this.leftNode = leftNode;
}
public Node getRightNode() {
return rightNode;
}
public void setRightNode(Node rightNode) {
this.rightNode = rightNode;
}
}
2. Tree 클래스 -- 삽입 하는 실제 함수를 구현한 곳
--오버로딩 이용 1 .addnode(int value) root값이 없는 경우
2. addnode( int value , Node root) root 값이 존재 하는 경우
public class Tree {
Node rootNode=null;
public void addNode(int value){
// root 값이 없는 경우
if(rootNode==null){
Node n=new Node();
n.setValue(value);
rootNode=n;
}else{// root 값이 있는경우
addNode(value , rootNode );
}
}
public void addNode(int value , Node rootNode){
// root 값보다 작은 경우
if(rootNode.getValue()>value){
// root의 왼쪽 노드가 없는경우
if(rootNode.getLeftNode()==null){
Node n = new Node();
n.setValue(value);
rootNode.setLeftNode(n);
}
else {// root의 왼쪽노드가 있는경우
addNode(value, rootNode.getLeftNode()); // 다시 이함수를 호출해서 더 깊이 들어가는 부분이고 root는 root의 왼쪽 노드
}
}else{//root 값보다 큰경우
// root의 오른쪽 노드가 없는 경우
if(rootNode.getRightNode()==null){
Node n = new Node();
n.setValue(value);
rootNode.setRightNode(n);
}
else{// root의 오른쪽 노드가 있는경우 더 깊이 들어가야한다
addNode(value, rootNode.getRightNode());
}
}
}
public static void main(String[] args) {
Tree t = new Tree();
t.
}
}