मैं एक डेटा संरचना की तलाश में हूं जिसमें मैं कुशलता से वस्तुओं को हटा सकता हूं और यादृच्छिक पहुंच का भी समर्थन करता हूं।कौन सी डेटा संरचना कुशल हटाने और यादृच्छिक पहुंच का समर्थन करता है?
मुझे कुशल सम्मिलन की भी आवश्यकता है, लेकिन तत्वों का क्रम महत्वपूर्ण नहीं है, मैंने सोचा कि मैं स्टोर करने के लिए अधिकतम तत्वों के लिए स्मृति को प्रीलोकेट कर सकता हूं और फिर अंत में हमेशा नया तत्व डाल सकता हूं ताकि कोई पुनर्वितरण या अन्य तत्वों की चाल आवश्यक है।
मेरे सर्वोत्तम ज्ञान के लिए, एक लिंक्ड सूची हटाने के लिए सही होगी लेकिन इसके तत्वों तक पहुंचने से ओ (एन) समय लग सकता है। दूसरी तरफ, एक सरल सरणी (उदाहरण के लिए vector
सी ++ में) में यादृच्छिक पहुंच संपत्ति है लेकिन इस तरह की संरचना से तत्व को हटाने से ओ (एन) की जटिलता है।
असल में, यादृच्छिक पहुंच आवश्यकता वास्तव में मुझे जो चाहिए उससे ज्यादा मजबूत है। मुझे केवल यादृच्छिक रूप से समान रूप से संरचना का एक तत्व चुनने में सक्षम होना चाहिए। स्पष्ट रूप से कुशल पहुंच संपत्ति का मतलब ऑपरेशन की दक्षता का तात्पर्य है, लेकिन मुझे यकीन नहीं है कि क्या वे दो बराबर हैं।
अग्रिम धन्यवाद!
हैश तालिका है ना? – smk
एक सेट भी एक विकल्प हो सकता है यदि कार्यान्वयन एक यादृच्छिक तत्व प्राप्त करने की अनुमति देता है (मुझे लगता है कि एक ही आवश्यकता हैश तालिका के लिए जाती है जो हमेशा ऐसा नहीं करती है) –
दुर्भाग्य से सी ++ में सेट कार्यान्वयन यादृच्छिक पहुंच की अनुमति नहीं देता है: ( – PBM