Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

डेटा स्ट्रक्चर में स्किप लिस्ट्स (Skip Lists)

स्किप लिस्ट (Skip List) में, कोई एलिमेंट a के लिए नोड से जिसमें एलिमेंट b है, फिंगर सर्च (Finger Search) कर सकता है बस इस बिंदु a से खोज जारी रखकर।

ध्यान दें कि यदि a < b, तो खोज पिछड़े दिशा (Backward Direction) में आगे बढ़ती है, और यदि a > b, तो खोज आगे की दिशा (Forward Direction) में आगे बढ़ती है।

पिछड़ा हुआ केस (Backwards Case) स्किप लिस्ट में सामान्य खोज के सममित (Symmetric) है, लेकिन आगे का केस (Forward Case) वास्तव में अधिक जटिल है।

आम तौर पर, स्किप लिस्ट में खोज तेज होने की उम्मीद है क्योंकि सूची की शुरुआत में सेंटिनल (Sentinel) को सबसे लंबा नोड माना जाता है।

हालांकि, हमारी फिंगर ऊंचाई 1 के नोड से जुड़ी हो सकती है। इसके कारण, हम खोज करने की कोशिश करते हुए शायद ही कभी चढ़ते हैं; ऐसा कुछ जो सामान्य रूप से कभी नहीं होता।

स्किप लिस्ट की सबसे महत्वपूर्ण विशेषताएं हैं कि उन्हें अपेक्षित रैखिक स्थान (Expected Linear Space) की आवश्यकता होती है, अपेक्षित O(log n) स्तर (Levels) शामिल होते हैं, अपेक्षित O(log n) समय में खोज का समर्थन करते हैं, और दी गई स्थिति पर अपेक्षित O(1) समय में सम्मिलन और विलोपन का समर्थन करते हैं।

स्किप लिस्ट के विभिन्न गुणों और विस्तारों पर विस्तार से चर्चा की गई है, जिसमें स्किप लिस्ट द्वारा अपेक्षित O(log d) समय में फिंगर खोज का समर्थन करने के लिए स्यूडो-कोड शामिल है। पिछड़े फिंगर खोज को सुविधाजनक बनाने के लिए, नोड V पर एक फिंगर को अपेक्षित O(log n) स्पेस फिंगर डेटा स्ट्रक्चर के रूप में संग्रहीत किया जाता है जो प्रत्येक स्तर i के लिए V के बाईं ओर के नोड का पॉइंटर स्टोर करता है जहां स्तर i पॉइंटर या तो V या V के दाईं ओर के नोड को इंगित करता है। फिंगर को स्थानांतरित करने के लिए इस पॉइंटर्स की सूची को तदनुसार अपडेट करने की आवश्यकता होती है।

एक पिछड़ा फिंगर खोज खोज कुंजी y के बाईं ओर फिंगर डेटा स्ट्रक्चर में सबसे निचले नोड की पहचान करके पूरी की जाती है, जहां फिंगर डेटा स्ट्रक्चर में नोड्स को बढ़ते स्तर के क्रम में माना जाता है।

इसके बाद खोज पहचाने गए नोड से नीचे की ओर मानक स्किप लिस्ट खोज के समान आगे बढ़ती है।

  1. डेटा संरचना में संतुलित बाइनरी खोज ट्री (Balanced Binary Search Trees) डेटा संरचना में संतुलित बाइनरी खोज ट्री (Balanced Binary Search Trees)

    यहाँ हम देखेंगे कि संतुलित बाइनरी खोज ट्री (Balanced Binary Search Tree) क्या है। बाइनरी खोज ट्री (BST) बाइनरी ट्री हैं, जिनमें बाएं बच्चे में छोटा तत्व होता है, और दाएं बच्चे में बड़ा तत्व होता है। BST में तत्वों को खोजने के लिए औसत समय जटिलता O(log n) है। यह बाइनरी खोज ट्री की ऊंचाई पर निर्भर कर

  1. डेटा संरचना में एकल सरणी में एकाधिक सूचियाँ (Multiple Lists in a Single Array) डेटा संरचना में एकल सरणी में एकाधिक सूचियाँ (Multiple Lists in a Single Array)

    सरणी प्रतिनिधित्व मूल रूप से स्थान की बर्बादी है जब यह डेटा संग्रहीत कर रहा है जो समय के साथ बदल जाएगा। कुछ डेटा संग्रहीत करने के लिए, हम कुछ स्थान आवंटित करते हैं जो एक सरणी में कई मानों को संग्रहीत करने के लिए पर्याप्त बड़ा हो। मान लीजिए हम सरणी दोहरीकरण मानदंड (array doubling criteria) का उपयोग

  1. हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure) हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure)

    परिचय (Introduction) टेम्पलेट पैरामीटर्स के लिए HDS या हाफएज डेटा स्ट्रक्चर (Halfedge Data Structure - संक्षिप्त HalfedgeDS) को एक एज-केंद्रित डेटा स्ट्रक्चर (Edge-centered Data Structure) के रूप में परिभाषित किया जाता है जो वर्टेक्स, एज और फेसेस (Vertices, Edges and Faces) की घटना जानकारी (Incidenc