Come si fa a "bilanciare" un albero di ricerca ternario? La maggior parte delle implementazioni non risolve il problema, ma suggerisce di inserirlo in un ordine ottimale (che non riesco a controllare)Bilanciare un albero di ricerca ternario
risposta
L'articolo su Dr. Dobbs su Ternary Search Trees dice: D.D. Sleator e R.E. Tarjan descrive algoritmi di bilanciamento teorici per alberi di ricerca ternaria in "Alberi di ricerca binaria autoregolanti" (Journal of the ACM, July 1985). Puoi trovare le versioni online di questo articolo con il tuo motore di ricerca preferito.
Una generalizzazione dell'albero di ricerca binaria è la B-Tree, che funziona per i fanagli ovunque da 2 in su. Non è l'unico modo per farlo, ma è comune.
In modo approssimativo il modo in cui funziona è che se un inserto o una cancellazione mette l'albero fuori equilibrio, ruba un elemento o uno spazio da un nodo adiacente. Se anche questo non è sufficiente per mantenere l'albero in equilibrio, la sua altezza sarà modificata per fare spazio.
L'OP parla di ** alberi di ricerca ternari **. – hmuelner
Non sono del tutto chiaro su come un albero B 1-2 differisca da un albero ternario. Puoi spiegarmelo? – SingleNegationElimination
Un B-Tree (in genere) contiene le chiavi complete nei nodi. In un albero di ricerca ternario la chiave è definita dal percorso del nodo. – hmuelner
leggere questo articolo:
"autoregolante di ternario Cerca cerca Utilizzando condizionali Rotazioni e randomizzato euristica" da "Ghada Hany Badr * e B. Giovanni Oommen †"
Essa vi aiuterà per comprendere TST auto-regolanti e di bilanciamento.
- 1. Albero di ricerca binaria perfettamente bilanciato
- 2. Albero di ricerca binario su albero AVL
- 3. Albero di ricerca binario per intenzioni specifiche
- 4. Alla ricerca di un albero genealogico
- 5. Implementazione di un iteratore su un albero di ricerca binario
- 6. Albero binario Ricerca in ampiezza
- 7. Trova un algoritmo per bilanciare questo gioco
- 8. altezza media di un albero binario di ricerca
- 9. Algoritmo per la ricerca di simmetrie di un albero
- 10. C'è un albero di ricerca binario integrato in .NET 4.0?
- 11. Java: come implementare un albero di ricerca binaria generico?
- 12. Creare un albero di ricerca binaria completo dalla lista
- 13. Come si crea un albero di ricerca binario in Clojure?
- 14. Come la mappa ad albero utilizza l'algoritmo albero nero rosso
- 15. Creazione di un grafico ternario
- 16. bilanciamento di un albero AVL (C++)
- 17. albero di ricerca di risparmio dello Stato di esecuzione
- 18. Livello di stampa Ordine Formattazione albero di ricerca binaria
- 19. Grande O di tabella hash vs albero di ricerca binaria
- 20. Il VHDL ha un operatore ternario?
- 21. Come convertire un albero binario in un albero di ricerca binario sul posto, cioè non possiamo usare alcuno spazio aggiuntivo
- 22. Un albero binario contiene un altro albero?
- 23. Eventuali suggerimenti dell'algoritmo di ricerca ad albero paralleli distribuiti?
- 24. Albero di ricerca binaria ricorsiva x = modifica (x)
- 25. Trova percorsi in un albero di ricerca binario sommando a un valore di destinazione
- 26. Quando utilizzare un albero di sintassi astratto o concreto?
- 27. Utilizzo di RegEx per bilanciare la parentesi di corrispondenza
- 28. implementazione di un motore di ricerca di base con albero di prefisso
- 29. Come bilanciare il numero di valutazioni rispetto alle valutazioni stesse?
- 30. metodo efficiente per la ricerca di KNN di tutti i nodi di un albero KD-
Quanto è grande un albero di ricerca? –
Un paio di migliaia di parole che vanno da 4 a 20 caratteri. Non sono sicuro se questo è grande o piccolo, ma è grande per me. – uroc
Sembra che buttare via l'albero quando arriva a un certo punto e sostituirlo con un albero costruito con "l'ordine ottimale" è la soluzione migliore - dovrebbe richiedere millisecondi, se è possibile risparmiare tempo. –