読み方 : にぶんぎ
二分木 【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は根から葉までの深さを表す。