Tree


What's Tree?


図形の複数の構造における方向図の構造.
1本の根から、木の枝が周囲に伸びる形が木に似ていて、木状構造と呼ばれています.

特長
  • 階層資料構造
  • 非線形構造
  • ノードと幹線からなるデータ構造は、下に延びるだけで周期がない.
  • ツリー実装

    class Tree {
      constructor(value) {
      // constructor로 만든 객체는 트리의 Node(데이터)
        this.value = value; 
        this.children = []; // 자식 노드를 담을 곳
        // {value: 인자로 들어온 값, children: []}
      }
    
    // 트리의 삽입 메서드
    // tree의 자식 노드를 생성 한 후에, 노드의 children에 push
      insertNode(value) {
      
        // 값이 어떤 이름으로 만들어지고 어느 위치에 붙어야 할까?
        const childNode = new Tree(value); // 부모와 같은 구조니까 인스턴스를 할당!
        this.children.push(childNode); // childNode를 만들어 children에 붙이기.
      }
    
    // 트리 안에 해당 값이 존재하는지 탐색하는 메서드
      contains(value) {
      // 현재 노드에서 탐색
        if (this.value === value) { 
          return true;
        }
      // 자식노드에서 탐색
        for (let el of this.children) {
          if (el.contains(value)) {
            return true;
          }
        }
      // 전부 탐색했음에도 찾지 못했다면 false 반환.
        return false;
      }
    }

    利用木


    典型的な例はコンピュータのディレクトリ構造です!