Molti algoritmi specificheranno che i duplicati sono esclusi. Ad esempio, gli algoritmi di esempio nel libro Algorithms del MIT di solito presentano esempi senza duplicati. È abbastanza banale implementare i duplicati (o come elenco sul nodo o in una direzione particolare).
La maggior parte (che ho visto) specifica i bambini di sinistra come <= e i bambini di destra come>. In pratica, un BST che consente a entrambi i bambini destro o sinistro di essere uguali al nodo principale, richiederà ulteriori passaggi computazionali per completare una ricerca in cui sono consentiti nodi duplicati.
È preferibile utilizzare un elenco nel nodo per memorizzare i duplicati, poiché l'inserimento di un valore '=' su un lato di un nodo richiede la riscrittura dell'albero su quel lato per posizionare il nodo come figlio, oppure il nodo viene posizionato come grande -bambino, ad un certo punto in basso, che elimina parte dell'efficienza della ricerca.
Devi ricordare, la maggior parte degli esempi di classe sono semplificati per ritrarre e fornire il concetto. Non valgono lo squat in molte situazioni del mondo reale. Ma l'affermazione, "ogni elemento ha una chiave e non due elementi hanno la stessa chiave", non è violata dall'uso di un elenco nel nodo dell'elemento.
Quindi segui quello che ha detto il tuo libro sulle strutture dati!
Modificare:
La definizione universale di un albero di ricerca binario implica l'archiviazione e la ricerca di una chiave basata sul passaggio di una struttura di dati in una delle due direzioni. In senso pragmatico, ciò significa che se il valore è <>, si attraversa la struttura dei dati in una delle due "direzioni". Quindi, in questo senso, i valori duplicati non hanno alcun senso.
Questo è diverso da BSP, o partizione di ricerca binaria, ma non così diverso. L'algoritmo da cercare ha una delle due direzioni per "viaggiare", o è fatto (con successo o no). Quindi mi scuso che la mia risposta originale non abbia affrontato il concetto di "definizione universale", poiché i duplicati sono in realtà un distinto argomento (qualcosa che hai a che fare con una ricerca riuscita, non come parte della ricerca binaria.)