BST είναι Binary Search Tree. Χρησιμοποιείται για ένα λεξικό. BST δεν έχει περιορισμούς στη δομή, και έτσι μια αναζήτηση / εισαγωγής / διαγραφής είναι O (n) χειρότερη περίπτωση.
Χάρτης [για STL] είναι επίσης ένα λεξικό, και είναι στην πραγματικότητα ένα κόκκινο-μαύρο δέντρο [στο STL]. είναι ένα ιδιαίτερο είδος της BST, ο οποίος έχει περιορισμούς σχετικά με τις δομές, λόγω του ότι, το χειρότερο αναζήτηση υπόθεση / εισαγωγή / διαγραφή είναι O (logn).
hashing πίνακα hash είναι ένας διαφορετικός τύπος λεξικού, το πλεονέκτημα ενός πίνακα hash [με καλές λειτουργίες hash] είναι Ο (1) μέσος χρόνος για την αναζήτηση / διαγραφή / ένθετο. Ωστόσο, η χειρότερη περίπτωση είναι O (n), η οποία συμβαίνει εάν πάρα πολύ στοιχεία συγκρούονται και / ή όταν απαιτείται μια επανάληψη [όταν Load Balance είναι πάρα πολύ υψηλή, διαθέτουμε ένα μεγαλύτερο συστοιχία, και αναμάσημα όλα τα στοιχεία να είναι].
Προσπαθεί είναι ειδικά για έγχορδα. Όλες οι ops είναι O (S) όπου το S είναι το μήκος της στοιχειοσειράς. Είναι πλεονέκτημα για τους άλλους [όταν ασχολείται με χορδές] είναι θα πρέπει να διαβάσετε το string ούτως ή άλλως, οπότε η πολυπλοκότητα εάν ένας Mapγια παράδειγμα, όταν ασχολείται με χορδές, είναι στην πραγματικότητα O (S * ν * logn).
πότε πρέπει να χρησιμοποιήσω;
ένα Map[ή οποιοδήποτε άλλο ισορροπημένο δέντρο], θα πρέπει σχεδόν πάντα να είναι μια καλύτερη επιλογή στη συνέχεια μια τακτική BST.
hash tableείναι μια καλή επιλογή όταν θέλετε μέση σύντομο χρονικό διάστημα, αλλά δεν με νοιάζει ότι μερικές φορές θα έχετε απώλεια απόδοσης εξαιτίας αναμάσημα, και σε ορισμένες περιπτώσεις μπορεί να συμβούν συγκρούσεις.
Trieείναι συνήθως ένα καλό λεξικό για έγχορδα.