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

ग्राफ के लिए डेप्थ फर्स्ट सर्च (DFS)


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

ग्राफ के लिए डेप्थ फर्स्ट सर्च (DFS)

यह पूरे डेप्थ के माध्यम से चलता है, जितना यह जा सकता है, उसके बाद यह पिछले वर्टेक्स पर वापस जाकर नया पथ ढूंढने के लिए बैकट्रैक करता है।

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

इनपुट और आउटपुट

इनपुट: एक ग्राफ का एडजेसेंसी मैट्रिक्स। A B C D E F A 0 1 1 1 0 0 B 1 0 0 1 1 0 C 1 0 0 1 1 0 D 1 1 1 0 1 1 E 0 1 0 1 0 1 F 0 0 1 1 1 0 आउटपुट: DFS ट्रैवर्सल: C F E B D A

एल्गोरिदम

dfs(vertices, start)

इनपुट: सभी वर्टेक्स की सूची, और स्टार्ट नोड

आउटपुट: ग्राफ में सभी नोड्स को ट्रैवर्स करें

Begin 
  initially make the state to unvisited for all nodes 
  push start into the stack 
  while stack is not empty, do 
    pop element from stack and set to u 
    display the node u 
    if u is not visited, then 
      mark u as visited 
      for all nodes i connected to u, do 
        if ith vertex is unvisited, then 
          push ith vertex into the stack 
          mark ith vertex as visited 
      done 
  done 
End

उदाहरण

#include #include using namespace std; #define NODE 6 typedef struct node { int val; int state; //status }node; int graph[NODE][NODE] = { {0, 1, 1, 1, 0, 0}, {1, 0, 0, 1, 1, 0}, {1, 0, 0, 1, 0, 1}, {1, 1, 1, 0, 1, 1}, {0, 1, 0, 1, 0, 1}, {0, 0, 1, 1, 1, 0} }; void dfs(node *vertex, node start) { node u; stack myStack; for(int i = 0; i

आउटपुट

DFS Traversal: C F E B D A
  1. ग्राफ के लिए ब्रेडथ फर्स्ट सर्च (BFS) ग्राफ के लिए ब्रेडथ फर्स्ट सर्च (BFS)

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

  1. डेटा संरचना में डायग्राफ पर डेप्थ-फर्स्ट सर्च (Depth-First Search on a Digraph) डेटा संरचना में डायग्राफ पर डेप्थ-फर्स्ट सर्च (Depth-First Search on a Digraph)

    ग्राफ के लिए डेप्थ-फर्स्ट सर्च समान हैं। लेकिन डायग्राफ या निर्देशित ग्राफ (directed graphs) के लिए, हम कुछ प्रकार के किनारे ढूंढ सकते हैं। DFS एल्गोरिदम एक ट्री बनाता है जिसे DFS ट्री कहा जाता है। चार प्रकार के किनारे होते हैं: ट्री एज (Tree Edge - T) – वे किनारे जो DFS ट्री में मौजूद हैं फॉरवर्ड

  1. फेसबुक ग्राफ सर्च के लिए अपने खाते की गोपनीयता तैयार करें [साप्ताहिक फेसबुक टिप्स] फेसबुक ग्राफ सर्च के लिए अपने खाते की गोपनीयता तैयार करें [साप्ताहिक फेसबुक टिप्स]

    हर बार जब फेसबुक हमारे दोस्तों के बारे में अधिक जानने के लिए एक नई सुविधा जारी करता है, तो बहुत से लोगों को एहसास होता है कि उनकी गोपनीयता सेटिंग्स अब पर्याप्त नहीं हैं। उनकी नवीनतम नई सुविधा, फेसबुक ग्राफ सर्च, कोई अपवाद नहीं है - बहुत से लोग इस बारे में थोड़ा चिंतित हैं कि किस तरह की चीजें मिलेंगी