मुझे 0 से 65535 की सीमा में पूर्णांक पर एक संग्रह रखने की आवश्यकता है ताकि मैं निम्नलिखित कार्य शीघ्रता से कर सकूँ:
- एक नया पूर्णांक डालें
- सन्निहित पूर्णांकों की एक श्रृंखला डालें
- एक पूर्णांक निकालें
- पूर्णांक के नीचे सभी पूर्णांक निकालें
- यदि कोई पूर्णांक मौजूद है तो परीक्षण करें
मेरे डेटा में वह संपत्ति है जिसमें अक्सर संग्रह में पूर्णांकों के रन होते हैं। उदाहरण के लिए, संग्रह समय के एक बिंदु पर हो सकता है:
{ 121, 122, 123, 124, 3201, 3202, 5897, 8912, 8913, 8914, 18823, 18824, 40891 }
सबसे सरल तरीका सिर्फ संतुलित द्विआधारी पेड़ का उपयोग करना है जैसे कि C ++ std :: set, हालांकि, इसका उपयोग करते हुए, मैं इस तथ्य का लाभ नहीं उठा रहा हूं कि मेरे पास अक्सर संख्याओं के रन हैं। शायद रेंज के संग्रह को स्टोर करना बेहतर होगा? लेकिन इसका मतलब है कि एक सीमा को तोड़ने में सक्षम होने की आवश्यकता है यदि इसके मध्य में एक पूर्णांक हटा दिया जाता है, या एक साथ जुड़ जाता है यदि दो श्रेणियों के बीच का स्थान भरा हुआ हो।
क्या कोई मौजूदा डेटा संरचनाएं हैं जो इस समस्या के लिए अच्छी तरह से अनुकूल होंगी?