プログラマーは、多くの場合、フラクタルを描くことに夢中です。新しいコンピューターベースのメディアが必要だと思います。
Hツリーは、水平線と垂直線からなるフラクタルのかなり単純なタイプです。これは、10回目の繰り返しです(ウィキペディア提供):
ここで、イメージの各行が標準的なコンピューターファイルシステムのディレクトリ(フォルダー)であると想像してください。最も小さい線を除くすべての線は、それよりも小さい2本の線と交差します。これら2つの小さな行は、大きな行のサブディレクトリです。したがって、中央の大きな水平線は、画像内の残りの行の親、祖父母などである2つの最大の垂直線の親ディレクトリです。
チャレンジ
stdinまたはコマンドライン(または最も近い代替)を介して正の整数Nを取り込み、HツリーフラクタルのN番目の反復をミラーリングするディレクトリツリーを作成するプログラムを作成します。
最初の反復(N = 1)は単一の水平線です。後続の各反復で、垂直線または水平線の新しいセットが現在の行の最後に追加されます。したがって、N = 2の場合、2本の垂直線が追加され(H形状を作成)、N = 3の場合、4本の水平線が追加されます。
ルートディレクトリの名前は常にtree
。サブディレクトリの名前は、使用して、彼らは彼らの親線に対してである方向に一致している必要がありright
、left
、up
とdown
。
ルートディレクトリは常に水平線であるので、それは常に持っていますright
し、left
サブディレクトリ。しかし、これら二つは持っているだろうup
し、down
サブディレクトリ、およびそれらを持つことになりますright
し、left
そうで再び、と。
反復制限の終わりのディレクトリは空でなければなりません。
例
N = 3の場合、ディレクトリツリーは次のようになります。
tree
right
up
down
left
up
down
追加情報
- 理想的には、
tree
ディレクトリはソースコードと同じフォルダにポップアップしますが、作業ディレクトリに移動しても問題ありません。 - あなたが
tree
作成される場所に既存のディレクトリは存在しないと仮定するかもしれません。 - プログラムは常に同じ一般的な最新のオペレーティングシステム(Mac / Windows / Linux)で実行されると仮定できます。基本的に、すべてのOSで機能しないファイル区切り文字の使用について心配する必要はありません。
tree
常にleft
andのright
代わりにup
and である必要がありdown
ますか?