marekb
Doppel-As
Hallo, ich habe da eine Aufgabe:
Ich soll die Baumtiefe eines beliebig mehrdimensionalen Arrays bestimmen.
Die Funktion soll so aussehen:
array.tree_depth
Ich soll das rekursiv machen leider bin ich da mit meinem Latein etwas am Ende.
Meine Lösung war mit Iteration:
Über eine andere Lösung würde ich mich sehr freuen.
Ich soll die Baumtiefe eines beliebig mehrdimensionalen Arrays bestimmen.
Die Funktion soll so aussehen:
array.tree_depth
Ich soll das rekursiv machen leider bin ich da mit meinem Latein etwas am Ende.
Meine Lösung war mit Iteration:
Code:
def ary?(obj)
obj.is_a?(Array)
end
class Array
def tree_depth
ary?(self)? tree_depth_(self,1,1): raise(RuntimeError)
end
def tree_depth_(array,curdepth,max)
cd = curdepth
md = max
cd > md ? md = cd : md
max = md
array.each { |a| ary?(a) ? md = tree_depth_(a, cd+1,md) : md }
return md
end
end
ary_t1=[[1,[2,[3,5]]]]
p ary_t1.tree_depth
Über eine andere Lösung würde ich mich sehr freuen.