コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

「木構造 (データ構造)」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Yutaochi (会話 | 投稿記録)
編集の要約なし
Yutaochi (会話 | 投稿記録)
37行目: 37行目:
** [[パトリシア木]]
** [[パトリシア木]]
*その他
*その他
*[[R木]](Rectangle tree)
**[[R木]](Rectangle tree)


==コンピュータにみる木構造==
==コンピュータにみる木構造==

2006年5月28日 (日) 04:58時点における版

木構造(きこうぞう)とは、グラフ理論の木の構造をしたデータ構造のこと。

枝でつながった二つの節点のうち、根(root)に近い方を、葉(leaf)に近い方をといい、同じレベルの節点同士を兄弟という。

親子構造

実装方法

コンピュータで利用する場合にはいくつかの実装方法がある。

  • 各ノードが子ノードへのポインタのリストを持つ
  • 各ノードが親ノードへのポインタを持つ
  • 各ノードが親ノードへのポインタと子ノードへのポインタのリストを持つ
  • 各ノードが長男ノードへのポインタと弟ノードへのポインタを持つ

走査法

木の各節点を一つずつ走査する方法には、以下の三つがある。(いずれの方法も、根から探索を始める。)

  • 前順・先行順・前置順 (pre order)
自身の節点を調査し、子節点を順に前順走査する
  • 間順・中間順 (in order)
長男の節点を間順走査し、自身の節点を調査し、残りの子節点を順に間順走査する
  • 後順・後行順・後置順 (post order)
子節点を順に後順走査し、自身の節点を調査する

木構造の種類

  • 部分木 - 木のある節点から先の枝と節点
  • 順序木 - 節点がもつ複数の子節点に、順序関係がついている木
  • 2分木 - 各節点が子節点を最大二つしかもたない木
  • 多分木 - 子節点を三つ以上持つ節点を含む木。2分木でない木。
  • 2分探索木
  • ヒープ
  • 平衡木 - すべての葉について、深さがほぼ等しい木
  • デジタル木 - 主に文字列の格納のためにつかわれる木
  • その他
    • R木(Rectangle tree)

コンピュータにみる木構造