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

जावास्क्रिप्ट में चौड़ाई-प्रथम खोज ट्रैवर्सल


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

  • आसन्न अगोचर शीर्ष पर जाएं। इसे विज़िट किए गए के रूप में चिह्नित करें। इसे प्रदर्शित करें। इसे एक कतार में डालें।
  • यदि कोई आसन्न शीर्ष नहीं मिलता है, तो पहले शीर्ष को कतार से हटा दें।
  • नियम 1 और नियम 2 को तब तक दोहराएं जब तक कि कतार खाली न हो जाए।

आइए एक उदाहरण देखें कि बीएफएस ट्रैवर्सल कैसे काम करता है:

<वें शैली="चौड़ाई:54.1468%;">ट्रैवर्सल <थ>विवरण
कदम
1 जावास्क्रिप्ट में चौड़ाई-प्रथम खोज ट्रैवर्सल कतार को प्रारंभ करें।
2 जावास्क्रिप्ट में चौड़ाई-प्रथम खोज ट्रैवर्सल हम S . पर जाकर शुरुआत करते हैं (शुरुआती नोड) और इसे विज़िट किए गए के रूप में चिह्नित करें।
3 जावास्क्रिप्ट में चौड़ाई-प्रथम खोज ट्रैवर्सल फिर हम S. . से एक असंबद्ध आसन्न नोड देखते हैं इस उदाहरण में, हमारे पास तीन नोड हैं लेकिन वर्णानुक्रम में हम A, . चुनते हैं इसे विज़िट के रूप में चिह्नित करें और इसे एनक्यू करें।
4 जावास्क्रिप्ट में चौड़ाई-प्रथम खोज ट्रैवर्सल अगला, S . से अगम्य आसन्न नोड है बी . हम इसे विज़िट किए गए के रूप में चिह्नित करते हैं और इसे संलग्न करते हैं।
5 जावास्क्रिप्ट में चौड़ाई-प्रथम खोज ट्रैवर्सल अगला, S . से अगम्य आसन्न नोड है सी . हम इसे विज़िट किए गए के रूप में चिह्नित करते हैं और इसे संलग्न करते हैं।
6 जावास्क्रिप्ट में चौड़ाई-प्रथम खोज ट्रैवर्सल अब, एस बिना विज़िट किए गए आसन्न नोड्स के साथ नहीं छोड़ा गया है। इसलिए, हम हटाते हैं और पाते हैं A
7 जावास्क्रिप्ट में चौड़ाई-प्रथम खोज ट्रैवर्सल से A हमारे पास D . है एक अनजान आसन्न नोड के रूप में। हम इसे विज़िट किए गए के रूप में चिह्नित करते हैं और इसे संलग्न करते हैं।

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

आइए देखें कि हम इसे जावास्क्रिप्ट में कैसे लागू कर सकते हैं।

उदाहरण

BFS(node) {// एक कतार बनाएं और उसमें अपना प्रारंभिक नोड जोड़ें q =new Queue(this.nodes.length); चलो पता लगाया =नया सेट (); क्यू.एनक्यू (नोड); // पहले नोड को एक्सप्लोर किए गए के रूप में चिह्नित करें। जोड़ें (नोड); // हम तब तक जारी रखेंगे जब तक कि हमारी कतार खाली न हो जाए (!q.isEmpty()) {let t =q.dequeue(); // कतार कंसोल से बाहर आने वाले प्रत्येक तत्व को लॉग करें। लॉग (टी); // 1. किनारों की वस्तु में, हम उन नोड्स की खोज करते हैं जिनसे यह नोड सीधे जुड़ा हुआ है। // 2. हम उन नोड्स को फ़िल्टर करते हैं जिन्हें पहले ही खोजा जा चुका है। // 3. फिर हम प्रत्येक बेरोज़गार नोड को एक्सप्लोर के रूप में चिह्नित करते हैं और इसे कतार में जोड़ते हैं। this.edges[t] .filter(n => !explored.has(n)) .forEach(n => {explored.add(n); q.enqueue(n); }); }} 

आप -

. का उपयोग करके इस फ़ंक्शन का परीक्षण कर सकते हैं

उदाहरण

चलो g =नया ग्राफ़ ();g.addNode("A");g.addNode("B");g.addNode("C");g.addNode("D");g.addNode ("ई");g.addNode("F");g.addNode("G");g.addEdge("A", "C");g.addEdge("A", "B"); g.addEdge("A", "D");g.addEdge("D", "E");g.addEdge("E", "F");g.addEdge("B", "G" );g.BFS("A");

आउटपुट

यह आउटपुट देगा -

एसीबीडीजीईएफ

  1. जावास्क्रिप्ट ट्री में क्रम में ट्रैवर्सल

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

  1. जावास्क्रिप्ट में स्ट्रिंग की खोज कैसे करें?

    जावास्क्रिप्ट में स्ट्रिंग खोजने के लिए निम्नलिखित कोड है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .result {फ़ॉन्ट-आकार:20px; फ़ॉन्ट-वजन:500; }जावास्क्रिप्ट में स्ट्रिंग की खोज करनावसंत का मौसम आने वाला है।यहां क्लिक करेंउपरोक्त स्ट्रिंग में स्प्रिं

  1. जावास्क्रिप्ट में रैखिक खोज को लागू करना

    जावास्क्रिप्ट में रैखिक खोज को लागू करने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Docu