| | |
簡単にツリー表現したい |
|
|
BBSで罫線付きでツリー表現しようとした時にサンプルを探したところ
回帰している難しいものしかなかったので、簡単な方法を考えてみました。
|
| |
|
ツリーデータ条件 |
|
|
- 1階層の桁数を決める。今回は2桁として話を進めます。
(したがって1階層には99個のデータまでです)
(階層の深さに制限はありません)
- 階層を深くする毎に上記の桁数を増やして行く。
- 同じ階層内では、1から連番で付けていく。
- ツリーデータ部分を文字データとして昇順に並べる。
|
| |
|
データの追加と削除 |
|
|
- 追加
- 指定したツリーの1つしたの階層の数を調べ+1したのも。 data
- 削除
- 指定したツリーとその下の階層すべて削除。 data
- 指定したツリーの位置に削除済みの跡をのこす。
|
| |
|
ツリーの表現 |
|
|
ツリーは昇順の後ろから求めていく。
ツリーの深さをパターンとして、罫線表示に1空白に0をセット
1つ前のデータのパターンが長ければ1桁取って最後の桁に1をセット data
1つ前のデータのパターンが短ければ data
その前のパターンと
残り階層の深さ分0をセット
最後の桁に1をセット
パターンができたらそれを罫線に置きかえるだけです。
|
| |
|
サンプルプログラム |
|
|
サンプルプログラム用データ |
追加 |
01020302 に追加する場合
cmp1:~$treeadd.pl 01020302 |
削除 |
010201 を削除する場合
cmp1:~$treedel.pl 010201 |
表示 |
ツリー表示
cmp1:~$treedsp.pl |
注意:"cmp1:~$"は私のコンピュータの環境です。自分の環境に置き換えて考えてください。
| |
|