2015-11-23 18:33 GMT+00:00 Gianluca Amato <gianlucaamato1...@gmail.com>:
> Questo è il pezzo che non capisco.. "Un dizionario d rappresenta un albero > se d ha due chiavi: 'name' con > valore il nome di un nodo e 'children' con valore la lista (eventualmente > vuota) > dei nodi figli e quest'ultimi sono a loro volta dizionari dello stesso > tipo. Si > veda l'esempio qui sotto. > Implementare inoltre la funzione create_tree(d) che preso un dizionario d > che > rappresenta un albero crea il corrispondente albero con nodi di tipo TNode > e ne > ritorna la radice. La funzione deve aggiungere i figli nello stesso ordine > in cui > sono elencati nelle liste delle chiavi 'children’.” Come lo costruisco > l’albero? Grazie in anticipo > > Questo stesso esercizio lo ha postato qualuno, forse tu stesso, sul forum di Python-it. Python (l'utente, non il linguaggio) ha risposto (e si applica anche in questo caso): 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. 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? Cosa non c'e' chiaro in tutto cio'? E' un esercizio *veramente* banale. Basta fermarsi a riflettere. 1. sai creare una classe (immagino di si, se non te lo avrebbero dato) 2. sai creare un oggetto (come sopra) 3. sai creare una funzione (come sopra) 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? 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). 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. 7. Con 3 e 5 e 6 puoi scrivere la funzione (che sara' probabilmente lunga tipo 4-5 righe). -- . ..: -enrico-
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python