멤버 변수
메서드
주의 사항
사용 예시
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) {
// constructor로 만든 객체는 트리의 Node가 됩니다.
this.value = value; //밸류 설정
this.children = []; //children 설정
}
// 트리의 삽입 메서드를 만듭니다.
insertNode(value) {
// 값이 어떤 이름으로 만들어지고 어느 위치에 붙는지 떠올리는 것이 중요합니다.
// TODO: 트리에 붙게 될 childNode를 만들고, children에 넣어야 합니다.
//const childNode = [];
let node = new Tree(value);
this.children.push(node);
}
// 트리 안에 해당 값이 포함되어 있는지 확인하는 메서드를 만듭니다.
contains(value) {
let result = false;
// TODO: 값이 포함되어 있다면 true를 반환하세요.
if (this.value === value) {
return true;
} else {
if (this.children.length > 0) {
for (let i = 0; i < this.children.length; i++) {
result = this.children[i].contains(value);
if (result) break;
}
}
return result;
}
// TODO: 값을 찾을 때까지 children 배열을 순회하며 childNode를 탐색하세요.
// 전부 탐색했음에도 불구하고 찾지 못했다면 false를 반환합니다.
return false;
}
}
[Binary Search Tree] 이진탐색트리 구현 (0) | 2022.12.14 |
---|---|
[Graph] adjacency(인접) matrix(행렬) 구현 (0) | 2022.12.14 |
[Queue] Queue Printer, 큐 프린터 (0) | 2022.12.14 |
[Queue] 박스포장 (0) | 2022.12.14 |
[Stack] Browser 뒤로가기/앞으로가기 (0) | 2022.12.14 |