मेरे पास आइटम (बड़े राशन) का संग्रह है जो मैं प्रसंस्करण कर रहा हूं। प्रत्येक मामले में, प्रसंस्करण में संग्रह में सबसे छोटी वस्तु को हटाने, कुछ काम करने, और फिर 0-2 नए आइटम जोड़ना शामिल होगा (जो हमेशा हटाए गए आइटम से बड़ा होगा)। संग्रह एक आइटम के साथ शुरू किया जाएगा, और काम खाली होने तक जारी रहेगा। मुझे यकीन नहीं है कि संग्रह किस आकार तक पहुंचने की संभावना है, लेकिन मैं 1 एम -100 एम वस्तुओं की श्रेणी में अपेक्षा करता हूं। मुझे सबसे छोटे से किसी भी आइटम का पता लगाने की आवश्यकता नहीं होगी।क्या मेरा लाल डेटा का लाल-काला पेड़ है?
मैं वर्तमान में एक लाल-काले पेड़ का उपयोग करने की योजना बना रहा हूं, संभवतः सबसे छोटी वस्तु को पॉइंटर रखने के लिए tweaked। हालांकि मैंने पहले कभी नहीं इस्तेमाल किया है, और मुझे यकीन नहीं है कि मेरे उपयोग का पैटर्न इसकी विशेषताओं को अच्छी तरह से फिट करता है या नहीं।
1) क्या बाएं से हटाने का पैटर्न खतरे में है + यादृच्छिक सम्मिलन प्रदर्शन को प्रभावित करेगा, उदाहरण के लिए यादृच्छिक विलोपन की तुलना में काफी अधिक घूर्णन की आवश्यकता होगी? या उपयोग के इस पैटर्न के साथ अभी भी ओ (लॉग एन) ऑपरेशन हटाएंगे और डालेंगे?
2) क्या कुछ अन्य डेटा संरचना मुझे बेहतर प्रदर्शन देती है, या तो हटाने के पैटर्न या इस तथ्य का लाभ उठाने के कारण मुझे केवल सबसे छोटी वस्तु को खोजने की ज़रूरत है?
अद्यतन: खुशी से मैंने पूछा, बाइनरी ढेर इस मामले के लिए स्पष्ट रूप से एक बेहतर समाधान है, और वादा किया गया है कि इसे लागू करने के लिए बहुत आसान हो गया।
ह्यूगो
जब तक आप निश्चित रूप से नहीं जानते कि नोड्स जिन्हें तार्किक रूप से हटाया जाना चाहिए, उन्हें नए गणना वाले मानों की आवश्यकता नहीं होगी, तो आप अनदेखा कर सकते हैं या विलोपन में देरी कर सकते हैं। एक हॉल और स्वीप दृष्टिकोण को उत्तरार्द्ध के लिए काम करना चाहिए, जहां उप-पेड़ों की जड़ें बहुत गन्दा हो गई हैं, उन्हें पुनर्मूल्यांकन कोड द्वारा पुनर्जन्म के लिए दौरा किया जाता है। यह सकल गिरावट को रोकता है, जबकि अभी भी कम प्रदर्शन की संभावित संभावना की पेशकश करता है। – RocketRoy