728x90
트리
단방향 그래프
하나의 뿌리로부터 가지가 사방으로 뻗은 형태
- 노드(Node) : 트리 구조를 이루는 모든 개별 데이터
- 루트(Root) : 트리 구조의 시작점이 되는 노드
- 부모 노드(Parent node) : 두 노드가 상하관계로 연결되어 있을 때 상대적으로 루트에서 가까운 노드
- 자식 노드(Child node) : 두 노드가 상하관계로 연결되어 있을 때 상대적으로 루트에서 먼 노드
- 리프(Leaf) : 트리 구조의 끝 지점이고, 자식 노드가 없는 노드
문제풀이
Tree 구현을 위한 기본적인 코드가 작성되어 있습니다. Tree 자료구조의 특성을 이해하고 FILL_ME_IN 을 채워 테스트를 통과해주세요.
class Tree {
constructor(value) {
// constructor로 만든 객체는 트리의 Node가 됩니다.
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;
}
}
// 전부 탐색했음에도 불구하고 찾지 못했다면 false를 반환합니다.
return false;
}
}
'프로그래밍 > 알고리즘' 카테고리의 다른 글
정렬 알고리즘(퀵 정렬, 배열 정렬, 힙정렬) (0) | 2022.09.06 |
---|---|
정렬알고리즘(선택정렬, 삽입정렬, 버블정렬) (0) | 2022.09.05 |
재귀함수 알고리즘 문제 풀이(js) (0) | 2022.06.23 |
프론트엔드 개발자에게 알고리즘 공부가 미치는 영향 (0) | 2022.04.25 |
파이썬 쉬운 예제 공부 사이트 추천(Feat.초보) (0) | 2022.04.13 |
댓글