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

डेटा संरचना में ग्राफ खोज (Searching a Graph)


हम जानते हैं कि ग्राफ एक गैर-रैखिक डेटा संरचना है। इस डेटा संरचना में, हम नोड्स में कुछ मान रखते हैं, और नोड्स विभिन्न किनारों के माध्यम से जुड़े होते हैं। चूंकि हम ग्राफ संरचना में डेटा संग्रहीत कर सकते हैं, हमें ग्राफ से तत्वों को खोजने के लिए भी उनकी आवश्यकता होती है ताकि उनका उपयोग किया जा सके।

ग्राफ में खोज के लिए, दो अलग-अलग विधियाँ हैं। ब्रेडथ-फर्स्ट सर्च (Breadth First Search) और डेप्थ-फर्स्ट सर्च (Depth First Search) तकनीकें।

ब्रेडथ-फर्स्ट सर्च (BFS)

ब्रेडथ-फर्स्ट सर्च (BFS) ट्रैवर्सल एक एल्गोरिदम है, जिसका उपयोग दिए गए ग्राफ के सभी नोड्स को देखने के लिए किया जाता है। इस ट्रैवर्सल एल्गोरिदम में एक नोड चुना जाता है और फिर सभी आसन्न नोड्स को एक-एक करके देखा जाता है। सभी आसन्न शीर्षों को पूरा करने के बाद, यह आगे दूसरे शीर्ष की जांच करने के लिए जाता है और फिर से उसके आसन्न शीर्षों की जांच करता है। इस एल्गोरिदम को लागू करने के लिए, हमें क्यू (Queue) डेटा संरचना का उपयोग करने की आवश्यकता होती है। सभी आसन्न शीर्षों को क्यू में जोड़ा जाता है जब सभी आसन्न शीर्ष पूरे हो जाते हैं, तो क्यू से एक आइटम हटा दिया जाता है और फिर से उस शीर्ष के माध्यम से ट्रैवर्स करना शुरू कर देता है।

डेप्थ-फर्स्ट सर्च (DFS)

डेप्थ-फर्स्ट सर्च (DFS) एक ग्राफ ट्रैवर्सल एल्गोरिदम है। इस एल्गोरिदम में, एक प्रारंभिक शीर्ष दिया जाता है, और जब एक आसन्न शीर्ष पाया जाता है, तो यह पहले उस आसन्न शीर्ष पर जाता है और उसी तरीके से ट्रैवर्स करने का प्रयास करता है। यह पूरी गहराई तक जाता है, जितना जा सकता है, उसके बाद यह नए पथ को खोजने के लिए पिछले शीर्षों पर वापस आता है (बैकट्रैक करता है)।

DFS को पुनरावृत्त (iterative) तरीके से लागू करने के लिए, हमें स्टैक (Stack) डेटा संरचना का उपयोग करने की आवश्यकता होती है। यदि हम इसे पुनरावर्ती (recursively) करना चाहते हैं, तो बाहरी स्टैक की आवश्यकता नहीं होती, यह पुनरावर्ती कॉल के लिए आंतरिक स्टैक का उपयोग करके किया जा सकता है।


  1. डेटा संरचना में सेगमेंट ट्री (Segment Trees) डेटा संरचना में सेगमेंट ट्री (Segment Trees)

    इस अनुभाग में हम देखेंगे कि सेगमेंट ट्री (Segment Tree) क्या है। उस पर चर्चा करने से पहले, आइए एक समस्या देखें। मान लीजिए हमारे पास एक सरणी arr[0,…,n-1] है। हम निम्न संक्रियाएँ कर सकते हैं: इंडेक्स l से r तक के तत्वों का योग ढूंढें, जहां 0 ≤ l ≤ r ≤ n-1 सरणी के एक निर्दिष्ट तत्व के मान को नए मान

  1. डेटा संरचना में अंतराल ट्री (Interval Trees) डेटा संरचना में अंतराल ट्री (Interval Trees)

    इस अनुभाग में हम देखेंगे कि अंतराल ट्री (Interval Tree) क्या है। जैसा कि नाम से पता चलता है, अंतराल ट्री वे ट्री हैं जो अंतराल (intervals) से जुड़े होते हैं। इसलिए अंतराल ट्री पर चर्चा करने से पहले, आइए प्राथमिक अंतराल (elementary intervals) देखें। एक अंतराल मूल रूप से एक रेंज है। इसलिए यदि एक अंत

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

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