読み方 : にぶんぎ

二分木 【binary tree】 バイナリツリー / 2分木

概要

二分木(binary tree)とは、データ構造の一つである木構造(ツリー構造)のうち、どの親ノードも二つ以下の子ノードを持つもの。子がN個以下に制限されたN分木(N-ary tree)のうち最も単純な構造の木である。
二分木のイメージ画像

解説 木構造はグラフ構造のうち要素に親子関係があり、親が複数の子を持つことができるようなものを意味し、根ノードroot node)を頂点として階層的に枝分かれしていく構造となる。

二分木はこのうち、どの親ノードも子ノードを一つか二つしか持たないという制限が課せられたものを指し、図示したときに左側にあるものを左ノード、右にあるものを右ノードという。子は一つのみの場合もあり、子がないノードは末端の葉ノードleaf node)となる。

全二分木/完全二分木 (full binary tree/perfect binary tree)

二分木のうち、(子のない葉ノードを除く)子を持つノードの子の数がすべて二個ずつであるようなものを「全二分木」(full binary tree)、全二分木のうちすべての葉ノードの深さが揃っているものを「完全二分木」(perfect binary tree)という。

また、最下層を除いてすべての深さがノードで満たされ、最下層の葉ノードが可能な限り左に寄せられているような木を “complete N-ary tree” と呼び、これを完全二分木とすることもある。

(2019.1.31更新)

他の用語辞典による「二分木」の解説 (外部サイト)

資格試験などの「二分木」の出題履歴

▼ 基本情報技術者試験
令5修1 問7】 2分木を入力するためのテキスト表現を,次のように規定した。図のように節に番号をつけたとき,テキスト表現として適切なものはどれか。
令4修6 問7】 2分木の各ノードがもつ記号を出力する再帰的なプログラムProc(n)の定義は,次のとおりである。このプログラムを,図の2分木の根(最上位のノード)に適用したときの出力はどれか。
令3修7 問7】 2分探索木になっている2分木はどれか。
令2修7 問7】 2分木の各ノードがもつ記号を出力する再帰的なプログラムProc(n)の定義は,次のとおりである。このプログラムを,図の2分木の根(最上位のノード)に適用したときの出力はどれか。
令1修7 問5】 2分探索木になっている2分木はどれか。
平30修6 問5】 2分木の各ノードがもつ記号を出力する再帰的なプログラムProc(n)の定義は,次のとおりである。このプログラムを,図の2分木の根(最上位のノード)に適用したときの出力はどれか。
平30修1 問5】 2分探索木になっている2分木はどれか。
平28修12 問5】 2分木の各ノードがもつ記号を出力する再帰的なプログラムProc(n)の定義は,次のとおりである。このプログラムを,図の2分木の根(最上位のノード)に適用したときの出力はどれか。
平28秋 問6】 2分探索木になっている2分木はどれか。
平28春 問5】 10個の節(ノード)から成る次の2分木の各節に,1から10までの値を一意に対応するように割り振ったとき,節a,bの値の組合せはどれになるか。
平27修7 問5】 2分木を入力するためのテキスト表現を,次のように規定した。図のように節に番号をつけたとき,テキスト表現として適切なものはどれか。
平26春 問6】 2分木の各ノードがもつ記号を出力する再帰的なプログラムProc(n)の定義は,次のとおりである。このプログラムを,図の2分木の根(最上位のノード)に適用したときの出力はどれか。
平24修7 問5】 2分木を入力するためのテキスト表現を,次のように規定した。図のように節に番号をつけたとき,テキスト表現として適切なものはどれか。
平23修6 問5】 10個の節(ノード)から成る次の2分木の各節に,1から10までの値を一意に対応するように割り振ったとき,節a,bの値の組合せはどれになるか。
平23修1 問5】 2分木を入力するためのテキスト表現を,次のように規定した。図のように節に番号をつけたとき,テキスト表現として適切なものはどれか。
平22修7 問5】 2分探索木になっている2分木はどれか。
平21修12 問5】 すべての葉が同じ深さをもち,葉以外のすべての節点が二つの子をもつ2分木に関して,節点数と深さの関係を表す式はどれか。ここで,nは節点数,kは根から葉までの深さを表す。