210916. Tree
勉強時間:19:30から22:00まで
今日の勉強
[データ構造/アルゴリズム]データ構造基礎:Tree
💡 Tree
のデータ上下関係(=階層関係)を格納データ構造 一方向図の構造で、1本の枝から周囲に伸びる形状は木に似ており、木構造 と呼ばれている.コンピュータフォルダ構造等は、ツリー構造の例では である.のデータは、順次リストする線形構造ではなく、1つのデータの背後に複数のデータが存在する可能性があるため、非線形構造の場合、 である.階層、下へ延びる、無周期 は複数の頂点で構成され、ツリーは、通常、この参照を矢印で示すサブ関係を持つ頂点への参照を有する. 上-下関係に分割すると、上の対応する頂点を親ノード、下の対応する頂点を子ノードとして表すか、上-下関係を親-子関係として表すことができる. ツリー構造では、最上位の頂点はツリーのルートに対してルートノード と呼ばれる.
ツリーの先頭ノード、すなわちルートとなるノード が一般木を表す場合、頂部にある 特定ノードの直接親ノード 特定のノードの直属のサブノード;親ノードとは逆の概念 等親ノード
最下位ノード、サブノードなし ツリーの末尾は「Rootノード」ではなく「Leafノード」と表示されます.
特定ノード距離Rootノード 深さ+1 の深さとほぼ同じ概念で、特定の深さのノードを表す用語 が用いられる.
ツリーの最も深いノードの深さ 現在は木の一部で、小さい木 は、1つの完全なツリーにも複数の部分ツリーがあり、 である.
ツリー構造により、データ間の階層関係をコンピュータに表示できます. ツリー構造は、のソートおよび圧縮、 などのコンピュータ科学における様々な問題を解決するのに役立つ.は、ディレクトリ、優先キュー、スイートなどの様々な抽象データ型を実装するために使用することができる
データ構造に格納1つまたは複数のデータ、すなわち .ツリーを巡る場合、主に再帰 を用いる.ツリー巡りの3つの基本アクション 再帰左部分木巡回 右側部分ツリー を再帰的に巡る現在のノードのデータ を出力する.
は、2つの部分ツリーを循環する前にノードデータを出力する循環方法 である.ツリー巡りの3つの基本動作を以下に示します 現在のノードのデータ を出力する.再帰左部分木巡回 右側部分ツリー を再帰的に巡る
は、2つの部分ツリーを循環する後にノードデータを出力する循環方法 である.ツリー巡りの3つの基本動作を以下に示します 再帰左部分木巡回 右側部分ツリー を再帰的に巡る現在のノードのデータ を出力する.
出力のデータの動作を2つの部分ツリー間に挟むループ方法 .ツリー巡りの3つの基本動作を以下に示します 再帰左部分木巡回 現在のノードのデータ を出力する.右側部分ツリー を再帰的に巡る
今日の勉強
[データ構造/アルゴリズム]データ構造基礎:Tree
💡 Tree
💜 ツリーコンセプト
💜 Tree用語集
🤍 ルーティングノード
🤍 親ノード
🤍 サブノード
🤍 兄弟ノード
🤍 Leafノード
最下位ノード、
🤍 深浅
🤍 すいじゅんけい
🤍 高さ
🤍 部分木
💜 じゅようりつ
ツリー構造により、
💜 Tree巡回
🤍 pre-order
🤍 post-order
🤍 in-order
出力
💜 Tree実装
class Tree {
// tree 의 constructor 를 구현
// tree 의 자식 노드들을 children 으로 할당하여 노드의 자식 노드들을 담을 수 있게 설정
constructor(value) {
this.value = value;
this.children = [];
}
// tree 의 자식 노드를 생성 한 후에, 노드의 children 에 push
insertNode(value) {
const childNode = new Tree(value);
this.children.push(childNode);
}
// tree 에서 value 값을 탐색
// 현재 노드의 value 값이 찾는 값과 일치한다면 return
contains(value) {
if (this.value === value) {
return true;
}
// 노드가 가진 자식 노드를 순회하는 반복문으로 노드의 children 배열을 탐색
for (let i = 0; i < this.children.length; i += 1) {
const childNode = this.children[i];
if (childNode.contains(value)) {
return true;
}
}
return false;
}
}
Reference
この問題について(210916. Tree), 我々は、より多くの情報をここで見つけました https://velog.io/@sylph0105/210916.-Treeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol