La specifica: "In ordine non decrescente" significa che li vuoi in "ordine crescente" oppure in "ordine qualsiasi, purche' soddisfino il filtro"?
Se l'ordine e' qualsiasi, allora dovrebbe essere sufficiente quanto segue, altrimenti occorre cambiarlo un po', ma si dovrebbe poter fare a paritre da questo:
Quote:
Originariamente inviato da Skarafaz
successors(k): restituisce un iteratore delle entry del dizionario con chiave maggiore o uguale a k (in ordine non decrescente)
|
Cerco in il nodo Nk, con ricerca binaria
Dovrebbe essere sufficiente un iteratore su tutti i nodi che sono figli di destra di Nk
Quote:
predecessors(k): restituisce un iteratore delle entry del dizionario con chiave minore o uguale a k (in ordine non decrescente)
|
Cerco in il nodo Nk, con ricerca binaria.
Lo cerco con una visita in profondita', prendendo sempre la strada di sinistra.
Restituisco tutti i valori, fino a che non trovo il primo > di k. Termino senza restituirlo.