Ho esplorato le definizioni degli alberi T-trees e B-/B +. Dai documenti sul Web comprendo che gli alberi B hanno un rendimento migliore nella memoria gerarchica, come le unità disco e la memoria cache.Quali sono i vantaggi degli alberi a T sugli alberi B +/-?
Quello che non riesco a capire è il motivo per cui gli alberi a T sono stati utilizzati anche per la memoria piatta?
Sono pubblicizzati come alternativa efficiente in termini di spazio agli alberi AVL.
Nel caso peggiore, tutti i nodi foglia di un albero a T contengono solo un elemento e tutti i nodi interni contengono l'importo minimo consentito, che è quasi pieno. Ciò significa che in media viene utilizzata solo metà dello spazio allocato. A meno che non mi sbagli, questo è lo stesso utilizzo del caso peggiore degli alberi B, quando i nodi di un albero B sono mezzo pieno.
Supponendo che entrambi gli alberi archivino le chiavi localmente nei nodi, ma usano i puntatori per fare riferimento ai record, l'unica differenza è che gli alberi B devono memorizzare i puntatori per ciascuno dei rami. Ciò generalmente causerebbe fino al 50% di overhead o meno (su alberi a T), a seconda della dimensione dei tasti. In realtà, questo è vicino al sovraccarico previsto negli alberi AVL, supponendo che nessun puntatore padre, record incorporati nei nodi, chiavi incorporate nei record. È questo il guadagno di efficienza atteso che ci impedisce di usare gli alberi B invece?
Gli alberi di tipo T vengono solitamente implementati sopra gli alberi AVL. Gli alberi AVL sono più equilibrati rispetto agli alberi B. Questo può essere collegato all'applicazione di alberi a T?
Grazie mille per la risposta. È il primo e lo apprezzo. Lascerò la domanda aperta anche se qualcuno commentasse le caratteristiche dei T-tree. So che sono fuori moda, quindi poche persone sono interessate a loro, ma hanno una propria pagina su Wikipedia. Pensavo che dovessero avere alcune caratteristiche giustificative. Grazie ancora. – simeonz