आप जो मांग रहे हैं, वह आपकी बाधाओं को देखते हुए संभव है।
विश्लेषण
हैश टेबल की ताकत इसकी तेज लुक और इंसर्शन स्पीड है। उस गति को प्राप्त करने के लिए, किसी को तालिका में क्रम के किसी भी भाग को छोड़ देना चाहिए: यानी प्रविष्टियां सभी को गड़बड़ कर रही हैं। एक सूची तालिका प्रविष्टि के रूप में उपयोग करने के लिए स्वीकार्य है क्योंकि जब ट्रैवर्सल हे (n) है, तो सूचियों को शॉर्ट हैश तालिका मानने के लिए पर्याप्त रूप से बड़ी है और तालिका में संग्रहीत वस्तुओं को अच्छी गुणवत्ता वाले हैशिंग एल्गोरिथ्म का उपयोग करके हैशेड किया जाता है।
बाइनरी सर्च ट्री (BST) में O (लॉग 2 एन) पर तेजी से सम्मिलन और लुकअप होता है । यह उन तत्वों पर भी प्रतिबंध लगाता है जो इसे संग्रहीत करता है: तत्वों को ऑर्डर करने के लिए कुछ तरीका होना चाहिए। पेड़ में संग्रहीत दो तत्वों ए और बी को देखते हुए , यह निर्धारित करना संभव होगा कि क्या ए बी से पहले आता है या यदि उनके पास समान क्रम है।
एक हैश तालिका ऐसी कोई प्रतिबंध नहीं लगाती है: हैश तालिका में तत्वों में दो गुण होने चाहिए। पहले, यह निर्धारित करने का एक तरीका होना चाहिए कि क्या वे समकक्ष हैं; दूसरा, नियतात्मक हैश कोड की गणना करने का एक तरीका होना चाहिए। आदेश एक आवश्यकता नहीं है।
यदि आपके हैश टेबल तत्वों में एक आदेश है, तो आप उसी हैश कोड (टकराव) के साथ वस्तुओं को रखने के लिए एक हैश तालिका प्रविष्टि के रूप में एक BST का उपयोग कर सकते हैं। हालांकि, एक BST O (लॉग 2 एन) लुकअप और सम्मिलन होने के कारण, इसका मतलब है कि पूरे ढांचे (हैश टेबल प्लस बीएसटी) के लिए सबसे खराब स्थिति तकनीकी रूप से तालिका प्रविष्टि के रूप में सूची का उपयोग करने से बेहतर है। BST कार्यान्वयन के आधार पर इसे एक सूची की तुलना में अधिक भंडारण की आवश्यकता होगी, लेकिन संभवतः अधिक नहीं।
कृपया ध्यान दें कि आमतौर पर एक BST का ओवरहेड और व्यवहार वास्तविक दुनिया की स्थितियों में हैश टेबल बकेट के रूप में तालिका में कुछ भी नहीं लाता है , यही कारण है कि एक सूची का सैद्धांतिक खराब प्रदर्शन स्वीकार्य है। दूसरे शब्दों में, हैश तालिका प्रत्येक सूची (बाल्टी) में कम आइटम रखकर सूची की कमजोरी की भरपाई करती है। हालाँकि : समस्या विशेष रूप से कहा गया है कि हैश तालिका आकार में वृद्धि नहीं कर सकती है , और हैश तालिका में टकराव सामान्य से अधिक बार होते हैं।
कार्यान्वयन
मैं यहां कोड नहीं डालने जा रहा हूं क्योंकि ईमानदारी से यह वास्तव में आवश्यक नहीं है और आपने वैसे भी एक भाषा नहीं दी।
मैं जो भी करूँगा बस कॉपी करूँगा जो भी मानक हैश टेबल है आपकी भाषा के मानक पुस्तकालय में एक नया वर्ग है, फिर एक सूची से पेड़ पर टेबल बाल्टी प्रकार बदलें। भाषा और उसके मानक पुस्तकालय के आधार पर यह बहुत ही मामूली बात हो सकती है।
आम तौर पर मैं इस तरह से कोडिंग की कॉपी और पेस्ट करने की वकालत नहीं करता। हालांकि, यह एक बहुत ही आसान तरीका है कि युद्ध-परीक्षण डेटा संरचना को बहुत जल्दी प्राप्त किया जा सके।