BST द्विआधारी खोज वृक्ष है। यह एक शब्दकोश के लिए प्रयोग किया जाता है। BST संरचना पर कोई सीमाएं हैं, और इस तरह एक खोज / प्रविष्टि / विलोपन हे (एन) सबसे खराब स्थिति है।
मानचित्र [एसटीएल पर] भी एक शब्दकोश है, और वास्तव में [एसटीएल पर] एक लाल-काले का पेड़ है। यह BST एक विशेष प्रकार का है, जो इसकी वजह से, संरचनाओं पर सीमाएं हैं है, सबसे ज्यादा मामले खोज / सम्मिलित करें / हटाएं है ओ (logn)।
hashing हैश तालिका शब्दकोश एक अलग प्रकार का है, [अच्छा हैश फंक्शन के साथ] एक हैश तालिका का लाभ हे (1) खोज / हटाने / डालने के लिए औसत समय है। हालांकि, सबसे ज्यादा मामले O (n) है, जो होता है अगर बहुत ज्यादा तत्वों टकराने और / या जब एक मिलावत की जरूरत है [जब लोड बैलेंस बहुत अधिक है, हम एक बड़ा सरणी का आवंटन, और मिश्रित सभी तत्वों के लिए] है।
कोशिश करता स्ट्रिंग्स के लिए विशेष कर रहे हैं। सभी ऑप्स हैं हे (एस) जहां एस स्ट्रिंग की लंबाई है। यह दूसरों पर लाभ है [जब तार के साथ काम कर] क्या आप वैसे भी स्ट्रिंग पढ़ने की जरूरत है, इसलिए जटिलता अगर एक Mapउदाहरण के लिए, जब तार के साथ काम कर, वास्तव में हे (एस * n * logn) है।
कब इस्तेमाल करें?
एक Map[या किसी अन्य संतुलित पेड़] लगभग हमेशा तो एक बेहतर विकल्प एक नियमित रूप से किया जाना चाहिए BST।
hash tableएक अच्छा विकल्प है जब आप औसत कम समय चाहते हैं, लेकिन कोई परवाह नहीं है कि कुछ समय आप प्रदर्शन मिश्रित की वजह से नुकसान होगा है, और कुछ मामलों में टकराव हो सकता है।
Trieआमतौर पर तार के लिए एक अच्छा शब्दकोश है।