Salve a tutti, mi sto esercitando con ProLog e mi ritrovo a sbattere la testa contro la visita in ampiezza. Ho provato a scrivere del codice a riguardo ma dopo una 80ina di righe ho deciso di chiedere un vostro aiuto/consiglio.
Mi ritrovo con la seguente idea finale:
Continuerò a sbatterci la testa e spero di risolvere il problemacodice:enqueue(Element, List, [List | [Element]]). dequeue([_Head | Tail], Tail). level_order(nil, []). level_order([Node, Left, Right], List) :- enqueue(Right, Left , T3), level_order_(T3, Res), append(Res, [Node], List1), reverse(List1, List). level_order_([], []). level_order_([nil | Tail], Res) :- level_order_(Tail, Res). level_order_([[Node, Left, Right] | Tail], [Node | TailL]) :- enqueue(Left, Tail, New_Acc1), enqueue(Right, New_Acc1, New_Acc2), level_order_(New_Acc2, TailL). % mi da errore a questo livello di ricorsione.
Spero in un vostro sito, ciauz![]()

.
Rispondi quotando