<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2015-11-23 18:33 GMT+00:00 Gianluca Amato <span dir="ltr"><<a href="mailto:gianlucaamato1993@gmail.com" target="_blank">gianlucaamato1993@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Questo è il pezzo che non capisco.. "Un dizionario d rappresenta un albero se d ha due chiavi: 'name' con<br>
valore il nome di un nodo e 'children' con valore la lista (eventualmente vuota)<br>
dei nodi figli e quest'ultimi sono a loro volta dizionari dello stesso tipo. Si<br>
veda l'esempio qui sotto.<br>
Implementare inoltre la funzione create_tree(d) che preso un dizionario d che<br>
rappresenta un albero crea il corrispondente albero con nodi di tipo TNode e ne<br>
ritorna la radice. La funzione deve aggiungere i figli nello stesso ordine in cui<br>
sono elencati nelle liste delle chiavi 'children’.” Come lo costruisco l’albero? Grazie in anticipo<br>
<div class=""><div class="h5"><br></div></div></blockquote><div><br></div><div>Questo stesso esercizio lo ha postato qualuno, forse tu stesso, sul forum di Python-it.</div><div><br></div><div>Python (l'utente, non il linguaggio) ha risposto (e si applica anche in questo caso):</div><div><br></div><div><span style="color:rgb(0,0,0);font-family:'Trebuchet MS',verdana,sans-serif;line-height:16.9px;background-color:rgb(236,237,243)">Il dizionario non lo devi creare, ti viene dato. Devi scrivere una funzione che prenda in ingresso un dizionario formato in quel modo e restituisca un oggetto TNode (di cui presumibilmente dovrai scrivere la classe) che rappresenta la radice. Ovviamente dovrà essere possibile attraversare l'albero partendo dalla radice, quindi dovrai aggiungere tutti i figli mentre attraversi il dizionario.</span><br style="color:rgb(0,0,0);font-family:'Trebuchet MS',verdana,sans-serif;line-height:16.9px;background-color:rgb(236,237,243)"><br style="color:rgb(0,0,0);font-family:'Trebuchet MS',verdana,sans-serif;line-height:16.9px;background-color:rgb(236,237,243)"><span style="color:rgb(0,0,0);font-family:'Trebuchet MS',verdana,sans-serif;line-height:16.9px;background-color:rgb(236,237,243)">Nota: se non sai cosa significhi un termine, basta cercare. Ad oggi, Google è ancora gratis. Ma poi anche un minimo di ragionamento: cross|posting, cosa sarà mai?</span><br></div><div> </div></div><div class="gmail_extra"><br></div><div class="gmail_extra">Cosa non c'e' chiaro in tutto cio'? E' un esercizio *veramente* banale. Basta fermarsi a riflettere.</div><div class="gmail_extra"><br></div><div class="gmail_extra">1. sai creare una classe (immagino di si, se non te lo avrebbero dato)</div><div class="gmail_extra">2. sai creare un oggetto (come sopra)</div><div class="gmail_extra">3. sai creare una funzione (come sopra)</div><div class="gmail_extra">4. Se il dizionario di partenza contiene due campi, name & children... secondo te, che faccia deve avere un oggetto che rappresenta la stessa roba? Tipo... quali attributi ti aspetti che abbia?</div><div class="gmail_extra">5. Mettendo insieme 1, 2 e 4 vuole dire che puoi tirare fuori un'implementazione iniziale di TNode (verosimilmente, sono 4 righe per la cosa piu' semplice che funziona).</div><div class="gmail_extra">6. Questo e' l'esempio piu' semplice in assoluto di ricorsione. Devi solo chiederti quale sia il caso base... ma pensa, e' talmente semplice in questo caso che semplicemente se scrivi il codice nel modo piu' naturale possibile il caso base viene automaticamente supportato.</div><div class="gmail_extra">7. Con 3 e 5 e 6 puoi scrivere la funzione (che sara' probabilmente lunga tipo 4-5 righe).</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div>-- <br><div class="gmail_signature"> .<br>..: -enrico-</div>
</div></div>