🍣

木構造とは

2024/07/01に公開

木構造(Tree Structure)

木構造は、データを階層的に表現するためのデータ構造の一つです。

主な特徴

  1. 親子関係:要素間に親子関係がある
  2. ルート:最上位の要素(根)が一つ存在する
  3. 枝分かれ:一つの親から複数の子が生まれる
  4. 葉:子を持たない要素(末端)

具体例

ファイルシステムの構造を木構造で表現すると

ルートディレクトリ/
├── ドキュメント/
│   ├── 仕事/
│   │   └── 企画書.docx
│   └── 個人/
│       └── 日記.txt
└── 画像/
    ├── 写真1.jpg
    └── 写真2.png

プログラミングでの表現

class Node:
    def __init__(self, value):
        self.value = value
        self.children = []

# ルートノードの作成
root = Node("ルートディレクトリ")

# 第2階層のノードを作成
documents = Node("ドキュメント")
images = Node("画像")

# ルートノードに子ノードを追加
root.children = [documents, images]

# 第3階層のノードを作成し、親ノードに追加
documents.children = [Node("仕事"), Node("個人")]
images.children = [Node("写真1.jpg"), Node("写真2.png")]

DOMとの関連

HTMLのDOM構造も木構造の一例です

<html>
  <head>
    <title>サンプルページ</title>
  </head>
  <body>
    <h1>こんにちは</h1>
    <p>これは段落です</p>
  </body>
</html>

この構造は以下のような木構造として表現できます

html
├── head
│   └── title
│       └── "サンプルページ"
└── body
    ├── h1
    │   └── "こんにちは"
    └── p
        └── "これは段落です"

木構造を理解することで、DOMの操作やデータの階層的な管理がより直感的に行えるようになります。

Discussion