그래프의 경우 비선형 구조이기 때문에 모든 노드를 탐색하기 위해 특별한 방법을 사용한다. 탐색 순서를 정하는 방법에 따라 DFS(Depth First Search), BFS(Breadth Firts Search)의 두 가지 방법이 있다. 트리또한 그래프의 일종이기 때문에 두가지 방법을 사용할수 있다.
insert(value) { let newnode = new BinarySearchTreeNode(value); if(this.value > value){ if(this.left === null){ this.left = newnode }else{ return this.left.insert(value) } } else if(this.value < value){ if(this.right === null){ this.right = newnode }else{ return this.right.insert(value) } } }
contains(value) { if(this.value === value){ return true; }else if(this.value < value){ if(this.right === null){ return false; }else if(this.right.contains(value)){ return true; } }else if(this.value > value){ if(this.left === null){ return false; }else if(this.left.contains(value)){ return true; } } return false; }
inorder(callback) {//중위순회 왼 루트 오른쪽 if(this.left !== null){ this.left.inorder(callback) } callback(this.value) if(this.right !== null){ this.right.inorder(callback) } }