データの二分木への格納法とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > データの二分木への格納法の意味・解説 

データの二分木への格納法

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/22 07:52 UTC 版)

二分木」の記事における「データの二分木への格納法」の解説

二分木プログラミング言語基本的な要素用いて構築することができる。データ型としてレコード型ポインタ型参照型)をもったプログラミング言語では、典型的な方法では、何らかのデータ左右の子へのポインタからなるノード組み合わせて木を構成する場合によっては親へのポインタ用意することもある。参照する相手がない(左右どちらかあるいは両方の子がない)場合は、「何も参照していない」ことを示す特別なnilnullのこと) にしておくか、事前に決めたあるノード番兵と呼ぶ)を指すようにする。親への参照付きデータ構築例をPascalによって示す。 type pNode = ^Node; {ノード型へのポインタ} Node = record data : (* 必要なデータをためる部分 *) left, parent, right : pNode {左の子、親、右の子へのポインタ} end;...var root, newnode : pNode;...begin new(root); root^.parent := nil; {根を植える。根には親がいない} new(newnode); {新しノードをつくる} with newnode^ do begin left := nil; right := nil; {子はいない} parent := root {rootが親} end; root^.left := newnode; {左側の子に} new(newnode); {新しノードをつくる} with newnode^ do begin left := nil; right := nil; {子はいない} parent := root {rootが親} end; root^.right := newnode {右側の子に}... 明示的な方法ではないが、配列二分木格納する方法もある。完全二分木ならば、この方法でもスペース無駄にすることはない。根の添字を0とすると、この場合添字 i のノードの子添字 2i + 1 と 2i + 2 に格納され、そのノード自体の親は(あれば)添字 floor((i-1)/2) にある。配列用いると記憶容量節約になり、行きがけ順(先行順、preorder traversal)でデータ舐める場合特に参照の局所性向上する。しかし、連続したメモリ空間を必要とし、木が大きくなる際に大きな処理時間を必要とする。また n 個のノードを持つ高さ h の木に対し2h - n に比例したメモリ消費するMLのようなタグ付き共有体を備えた言語では、しばしばタグ付き共有体として二分木構築される。それには二種類ノード用いられ一つデータ、左の子、右の子持った3-tupleのノードで、もう一つデータ関数もたない」である(上記PascalやCのようなポインタ型をもった言語nil に当たる)

※この「データの二分木への格納法」の解説は、「二分木」の解説の一部です。
「データの二分木への格納法」を含む「二分木」の記事については、「二分木」の概要を参照ください。

ウィキペディア小見出し辞書の「データの二分木への格納法」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「データの二分木への格納法」の関連用語

1
12% |||||

2
8% |||||

データの二分木への格納法のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



データの二分木への格納法のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの二分木 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS