B木

mzp2007-01-25

{friend:dmp}が、http://geodenx.ddo.jp/blog/2007/01/db_1.html

OOoの図形描画はそれなりに使えるぜフゥハハハァーハァ!

と言っていたので、Graphvizで対抗してみる。

こいつは要するに、DOT言語でグラフを記述して、PNGやらPostScriptやらに変換するツール。
今回は、PNGにした。

例えば、課題のB木は次のように記述できる。

digraph tree{
 node [ shape=record];
 root[label="<p_left>|16|<p_center>||<p_right>"];
 c1[label="<p_left>|10|<p_center>||<p_right>"];
 c2[label="<p_left>|25|<p_center>|33|<p_right>"];
 
 d1[label="<i>5|7||<o>"];
 d2[label="<i>10|13||<o>"];
 d3[label="<i>16|18|22|<o>"];
 d4[label="<i>25|28||<o>"];
 d5[label="<i>33|35||<o>"];
 
 root:p_left->c1;
 root:p_right->c2;
 
 c1:p_left->d1;
 c1:p_center->d2;
 
 c2:p_left->d3;
 c2:p_center->d4;
 c2:p_right->d5;
 
 d1:o->d2:i;
 d2:o->d3:i;
 d3:o->d4:i;
 d4:o->d5:i;

 {rank =same; d1;d2;d3;d4;d5}
}

で、変換するとこうなる。