void toText( NodePtr t, int indent ){
int i;
for( i=0; i<indent; i++ ){ printf( " " ); }
if( t->left == NULL ){
printf( "[%d]\n", t->val );
} else {
printf( "[%c]\n", t->val );
}
if( t->left != NULL ){
toText( t->left, indent + 1 );
}
if( t->right != NULL ){
toText( t->right, indent + 1 );
}
}
puts("");
toText( z );
void toDot( NodePtr t ){
printf( "N%p [label=\"", t );
if( t->left == NULL ){
printf( "%d\"];\n", t->val );
} else {
printf( "%c\"];\n", t->val );
}
if( t->left != NULL ){
printf( "N%p -> N%p;\n", t, t->left );
}
if( t->right != NULL ){
printf( "N%p -> N%p;\n", t, t->right );
}
if( t->left != NULL ){
toDot( t->left );
}
if( t->right != NULL ){
toDot( t->right );
}
}
printf( "\ndigraph { graph [ordering=\"out\"];\nnode [shape=\"circle\"];\nedge [arrowhead=\"none\"];\n" );
toDot( z );
printf( "}\n" );
dot -Tx11 hoge.dot画像ファイルとして保存したければ、次のようにする。pdf以外で保存したければ、2か所あるpdfはpngやjpgに変更すればよい。
dot -Tpdf hoge.dot > fuga.pdf自宅などで実施するのであれば、hoge.dotを以下から読み込ませる。 あるいは、hoge,dotの内容をすべて下のボックスにコピー&ペーストして、変換ボタンをクリックする。