×
データ構造とアルゴリズム

木構造(ツリー構造:Tree Structure)は、データ同士を階層的な親子関係でつないだ非線形のデータ構造です。全体が枝分かれした樹木のような形状をしており、ネットワーク構造とは異なり「循環(ループ)」を持たないのが定義上の特徴です。構成要素である「ノード(節)」のうち、最上位にある唯一の親を持たないノードを「根(ルート:Root)」、親と子の両方を持つ中間的なノードを「節(内部ノード)」、最下位にあり子を持たないノードを「葉(外部ノード/リーフ:Leaf)」と呼びます。また、ノード間のつながりを「枝(エッジ)」と呼びます。木構造は、組織図、ファイルシステム、XML/HTMLのドキュメント木(DOM構造)など、現実世界の階層関係を表現するのに最適なだけでなく、データの検索やソートを高速に行うための様々な派生データ構造(二分探索木、B木など)の土台として、データベースやファイル管理システムの内部で極めて重要な役割を果たしています。

試験でのポイント

試験では、木構造に関する基本用語(根、節、葉、子の数を示す次数、根からの深さや高さ)の定義を問う知識問題が出題されます。また、木構造の各ノードを巡回(走査)する順序として、親ノードをどのタイミングで処理するかに応じた「先行順(前順/行きがけ順)」「中間順(通りがけ順)」「後行順(後順/帰りがけ順)」という3つの巡回アルリズムとその走査結果を問う問題が頻出となっており、図解から手順をトレースできるようにしておく必要があります。

関連する用語

根(ルート、木構造の出発点となるノード)、葉(リーフ、末端のノード)、走査(ツリー全体のノードを特定の順序で巡る処理)。