私はツリーからすべての枝の深さを与え、深さの整数をリストにパックする関数を実装したいと思います。 私は最大と最小を見つける方法を知っていますが、他のものを見つける方法はわかりません。ハスケルの枝の深さはどうすればわかりますか?
例の木と私のコード:
data NBaum a = NBlatt a | NKnoten a [NBaum a]
deriving(Eq,Show)
例ツリー:
NKnoten "Sonne"[NKnoten "Jupiter" [NBlatt "Io", NBlatt "Europa", NBlatt "Ganymed", NBlatt "Kallisto"],NKnoten "Mars" [NBlatt "Phobos", NBlatt "Deimos"],NBlatt "Merkur", NBlatt "Venus", NKnoten "Erde" [NBlatt "Mond"]]
最大深さ:
tdepth (NBlatt a) = 1
tdepth (NKnoten _ b) = 1 + maximum [tdepth branch | branch <- b]
最小深さ:私の木のInit
tdepth (NBlatt a) = 1
tdepth (NKnoten _ b) = 1 + minimum [tdepth branch | branch <- b]
私が持つツリーの解答は、[2,2,3,3,3,3,3,3,3]
です。リストの要素は別の順序を持つことができます。
私はそれを得るカント... – Fl4mer
私は私がXSリストと再帰呼び出しのウィッヒのカルクのN + 1、その後、再帰呼び出しを実装することを知っています。しかし、正確な呼び出し...私は知らない – Fl4mer
私はryachzaを助けることができますか? – Fl4mer