Tree 구현을 위한 기본적인 코드가 작성되어 있습니다. Tree 자료구조의 특성을 이해하고 FILL_ME_IN 을 채워 테스트를 통과해주세요.
value는 어떠한 값도 들어갈 수 있지만 현재 구현하는 Tree는 숫자로 제한합니다.
const rootNode = new Tree(null);
for(let i = 0; i <= 4; i++) {
if(rootNode.children[i]) {
rootNode.children[i].insertNode(i);
}
rootNode.insertNode(i);
}
rootNode; // {value: null, children: Array(5)}
rootNode.contains(5); // false
rootNode.contains(1); // true
...
class Tree {
constructor(value){
this.value = value;
this.children = [];
}
insertNode(value){
const childNode = new Tree(value);
this.children.push(childNode);
}
contains(value){
if(this.value === value){
return true;
}
for(let i = 0; i < this.children.length; i++){
const childNode = this.children[i];
if(childNode.contains(value)){
return true;
}
}
return false;
}
}
트리는 데이터 검색 및 정렬시 적합하고 계층형 데이터 저장시 사용됩니다.
하나의 시작 노드(root)로부터 시작되어 자식 노드(childNode)가 뻗어나가는 구조입니다.