Premetto che ho letto il regolamento prima di postare e non potrei chiedervelo, però non so proprio più a chi chiedere...
Il problema è questo:
Sia dato un albero binario di ricerca T, i cui nodi contengono esclusivamente una chiave intera, un puntatore al figlio sinistro e uno al destro.
Si definisca un algoritmo efficiente che, dati i valori interi h1>=1, h2>=1, k1>=0, k2>=0, cancelli dall' albero T tutti i nodi che , nell' albero fornito in ingresso, soddisfano la seguente proprietà:
hanno chiave k pari tale che k1<=k<=k2 e sono radici di sottoalberi il cui percorso esterno ha lunghezza h che soddisfa h1<=h<=h2
Si ricorda che la lunghezza del percorso esterno in un albero radicato nel nodo x è la somma delle lunghezze dei percorsi da x a foglia.
nota: non è possibile utilizzare parametri passati per riferimento nè variabili globali.
Solitamente il prof vuole qualcosa di efficiente è non va bene che ogni volta che un nodo soddisfa la proprietà vado a calcolarmi la somma dei percorsi, solitamente usiamo lo ricorsione non lineare per arrivare alle foglie e risalendo poi ci ritorniamo i valori che ci servono, ma quest' esercizio mi sta uccidendo.. non riesco a pensare nulla di efficiente, qualcuno di buon cuore che gli và di perdere 10 minuti? grazie...