(पहले से ही मुख्य साइट पर पूछा गया है , लेकिन बेहतर कवरेज के लिए यहां भी पूछ रहा है, क्षमा करें)
चूँकि मुझे सुक्युटी डेटा स्ट्रक्चर्स के बारे में पता था कि मैं उस क्षेत्र के हालिया घटनाक्रमों के अच्छे अवलोकन की सख्त ज़रूरत हूँ।
मैंने बहुत सारे लेख पढ़े हैं और मैंने अपने सिर के ऊपर से अनुरोधों पर Google परिणामों के शीर्ष पर देखा है। मुझे अभी भी संदेह है कि मैंने यहां कुछ महत्वपूर्ण याद किया है।
यहाँ मेरे लिए विशेष रुचि के विषय हैं:
माता-पिता, बाएं / दाएं बच्चे, एक सबट्री में तत्वों की संख्या प्राप्त करने के कुशल संचालन के साथ बाइनरी पेड़ों की सुसाइड एन्कोडिंग।
यहाँ मुख्य प्रश्न इस प्रकार है: सभी दृष्टिकोणों से मुझे लगता है कि श्वास-प्रथम क्रम में गणना किए गए वृक्ष के नोड्स (जैसे कि इस क्षेत्र में अग्रणी कार्य जैकबसन, जी। जे। मेरे कार्य के लिए उपयुक्त लगते हैं। मैं गहराई-पहले लेआउट में दिए गए विशाल द्विआधारी पेड़ों से निपटता हूं और गहराई-पहला नोड सूचक अन्य नोड गुणों की कुंजी हैं, इसलिए पेड़ के लेआउट को बदलने से मेरे लिए कुछ लागत होती है जिसे मैं कम से कम करना चाहता हूं। इसलिए अन्य बीएफ पेड़ लेआउट पर विचार करने वाले कार्यों के संदर्भ में रुचि।
बाहरी चर-लंबाई की वस्तुएं बाहरी मेमोरी में एरेज़ करती हैं। सरणियाँ अपरिवर्तनीय हैं: मुझे आइटम जोड़ने / हटाने / संपादित करने की आवश्यकता नहीं है। एकमात्र आवश्यकता हे (1) तत्व पहुंच समय और जितना संभव हो उतना कम ओवरहेड, बेहतर और फिर सीधे ऑफसेट और आकार दृष्टिकोण। यहाँ कुछ आँकड़े हैं जो मैंने अपने कार्य के लिए विशिष्ट डेटा के बारे में एकत्रित किए हैं:
आइटमों की विशिष्ट संख्या - लाखों की संख्या में, दसियों मिल तक;
लगभग 30% वस्तुओं की लंबाई 1 बिट से अधिक नहीं है ;
40% -60% वस्तुओं की लंबाई कम है तो 8 बिट्स;
32 और 255 बिट्स (255 बिट्स की सीमा होती है) के बीच केवल कुछ ही वस्तुओं की लंबाई होती है
औसत आइटम लंबाई ~ 4 बिट +/- 1 बिट।
आइटम की लंबाई का कोई अन्य वितरण सैद्धांतिक रूप से संभव है लेकिन सभी व्यावहारिक रूप से दिलचस्प मामलों में ऊपर वर्णित के करीब आंकड़े हैं।
किसी भी जटिलता के लेखों के लिंक, किसी भी अस्पष्टता के ट्यूटोरियल, अधिक या कम प्रलेखित सी / सी ++ लाइब्रेरीज़, - कुछ भी जो आपके लिए समान कार्यों में उपयोगी था या जो आपके शिक्षित अनुमान से ऐसा दिखता है - ऐसी सभी चीजों की सराहना की जाती है।
अद्यतन : मैं प्रश्न 1 में जोड़ना भूल गया हूं: मैं जिन बाइनरी पेड़ों से निपट रहा हूं, वे अपरिवर्तनीय हैं। मुझे उन्हें बदलने की कोई आवश्यकता नहीं है, मुझे केवल उनकी ज़रूरत है विभिन्न तरीकों से उन्हें हमेशा नोड से बच्चों या माता-पिता के पास ले जाना, ताकि इस तरह के ऑपरेशन की औसत लागत ओ (1) हो।
इसके अलावा, ठेठ पेड़ में नोड्स के मिलर हैं और उन्हें पूरी तरह से रैम में संग्रहीत नहीं किया जाना चाहिए।