2010-10-12 4 views

उत्तर

7

SortedDictionary<K,V> कक्षा एक पेड़ का उपयोग करती है, क्या आप इसके बाद क्या कर रहे हैं?

चर्चा के लिए यह SO answer देखें।

2

एक अन्य विकल्प एक सूची का उपयोग करें और यह सॉर्ट करने के लिए है। फिर आप वस्तुओं को खोजने के लिए बाइनरीशर्च विधि का उपयोग कर सकते हैं। क्रमबद्ध सूची को बनाए रखने के लिए आप बाइनरीशर्च द्वारा वापस डालने के लिए इंडेक्स का उपयोग कर सकते हैं। यदि लौटा हुआ सूचकांक आपके सम्मिलित स्थान के रूप में पूरक (~ ऑपरेटर) का नकारात्मक उपयोग करता है, यदि लौटा हुआ सूचकांक सकारात्मक है तो आप उस स्थान पर सम्मिलित कर सकते हैं (जब तक कि आप व्यवहार की तरह सेट नहीं करना चाहते हैं, जिस स्थिति में बिल्कुल सम्मिलित नहीं है)।

+1

यह वही खोज अर्थशास्त्र प्रदान करता है, लेकिन अंतर्निहित संरचना अभी भी एक पुरानी पुरानी सूची है, न कि बीएसटी। –

+0

अच्छी कॉल, जब मैंने इसे पोस्ट किया था तब तक नहीं सोचा था (उस समय केवल 1 कप कॉफी)। मैं बाइनरी खोज के साथ सूची का उपयोग करता हूं और बीएसटी खोज अर्थशास्त्र प्राप्त करने के लिए सूचकांक सम्मिलित करता हूं। मुझे और सावधानी से पढ़ना चाहिए :) – pstrjds

2

C5 library:

कक्षा TreeDictionary इंटरफ़ेस ISortedDictionary लागू करता है और का प्रतिनिधित्व करता है (कुंजी, मूल्य) जोड़े, या प्रविष्टियों, एक आदेश दिया संतुलित redblack द्विआधारी पेड़ का उपयोग करने का एक शब्दकोश। प्रवेश पहुंच, प्रवेश हटाने, और प्रवेश सम्मिलन समय ओ (लॉग) लेते हैं। कुंजी तुलनाकर्ता द्वारा निर्धारित अनुसार, पेड़ शब्दकोश की चाबियों, मानों या प्रविष्टियों का गणना कुंजी आदेश, का पालन करें।

0

http://code.google.com/p/self-balancing-avl-tree/। एवीएल पेड़ के आधार पर समेकित और विभाजित संचालन के साथ-साथ सॉर्टेड डिक्टिनरी और सॉर्टेड मल्टी डिक्शनरी के साथ संतुलित एवीएल पेड़ कार्यान्वयन।