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

जांचें कि दिया गया ग्राफ ट्री है या नहीं


इस समस्या में, एक अनडायरेक्टेड ग्राफ दिया गया है, हमें जांचना है कि ग्राफ ट्री है या नहीं। हम ट्री के मानदंड की जांच करके इसे सरलता से ढूंढ सकते हैं। एक ट्री में साइकिल नहीं होगी, इसलिए यदि ग्राफ में कोई साइकिल है, तो यह ट्री नहीं है।

जांचें कि दिया गया ग्राफ ट्री है या नहीं

हम इसे दूसरे दृष्टिकोण से भी जांच सकते हैं, यदि ग्राफ कनेक्टेड है और इसमें V-1 एज हैं, तो यह ट्री हो सकता है। यहां V ग्राफ में वर्टेक्स की संख्या है।

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

इनपुट: एडजेसेंसी मैट्रिक्स। 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 आउटपुट: ग्राफ एक ट्री है

एल्गोरिदम

isCycle(u, visited, parent)

इनपुट: स्टार्ट वर्टेक्स u, विजिटेड सूची विजिटेड या नहीं मार्क करने के लिए, पैरेंट वर्टेक्स

आउटपुट: True यदि ग्राफ में साइकिल है

Begin 
  mark u as visited 
  for all vertex v which are adjacent with u, do 
    if v is visited, then 
      if isCycle(v, visited, u) = true, then 
        return true 
      else if v ≠ parent, then 
        return true 
  done 
  return false 
End

isTree(graph)

इनपुट: अनडायरेक्टेड ग्राफ

आउटपुट: True जब ग्राफ एक ट्री हो

Begin 
  define a visited array to mark which node is visited or not 
  initially mark all node as unvisited 
  if isCycle(0, visited, φ) is true, then //the parent of starting vertex is null 
    return false 
  if the graph is not connected, then 
    return false 
  return true otherwise 
End

उदाहरण

#include #define NODE 5 using namespace std; int graph[NODE][NODE] = { {0, 1, 1, 1, 0}, {1, 0, 1, 0, 0}, {1, 1, 0, 0, 0}, {1, 0, 0, 0, 1}, {0, 0, 0, 1, 0} }; bool isCycle(int u, bool visited[], int parent) { visited[u] = true; //mark v as visited for(int v = 0; v

आउटपुट

The Graph is a Tree.
  1. पायथन में जांचें कि दिए गए शीर्षों की डिग्री ग्राफ दर्शाती है या ट्री पायथन में जांचें कि दिए गए शीर्षों की डिग्री ग्राफ दर्शाती है या ट्री

    मान लीजिए हमारे पास कुछ शीर्षों की डिग्री की सूची है। हमें जांचना है कि यह ग्राफ बनाती है या ट्री। उदाहरण के लिए, यदि इनपुट deg = [2, 2, 3, 1, 1, 1] है, तो आउटपुट Tree होगा। हल करने का तरीका vert := शीर्षों की संख्या deg_sum := सभी शीर्षों की डिग्री का योग यदि 2 × (vert - 1) == deg_sum, तो Tree ल

  1. Python में दिया गया ट्री सममित ट्री है या नहीं, इसकी जांच करने का प्रोग्राम Python में दिया गया ट्री सममित ट्री है या नहीं, इसकी जांच करने का प्रोग्राम

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

  1. पायथन में जांचें कि दिया गया ग्राफ द्विभाजित है या नहीं पायथन में जांचें कि दिया गया ग्राफ द्विभाजित है या नहीं

    मान लीजिए हमारे पास एक अविकल्पित ग्राफ है, हमें जांचना है कि ग्राफ द्विभाजित है या नहीं। जैसा कि हम जानते हैं, एक ग्राफ द्विभाजित होता है जब हम ग्राफ के नोड्स को दो सेट A और B में विभाजित कर सकते हैं ताकि ग्राफ में प्रत्येक किनारा {u,v} का एक नोड u A में और दूसरा नोड v B में हो। उदाहरण के लिए, यदि