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

जावास्क्रिप्ट में बाइनरी सर्च ट्री लागू करना

<घंटा/>

वृक्ष डेटा संरचना

एक पेड़ कुछ किनारों से जुड़े नोड्स का एक संग्रह है। परंपरागत रूप से, पेड़ के प्रत्येक नोड में कुछ डेटा और उसके बच्चों के संदर्भ होते हैं।

बाइनरी सर्च ट्री

बाइनरी सर्च ट्री एक बाइनरी ट्री है जिसमें कम मान वाले नोड्स को बाईं ओर संग्रहीत किया जाता है जबकि उच्च मान वाले नोड्स को दाईं ओर संग्रहीत किया जाता है।

उदाहरण के लिए, एक वैध बीएसटी का दृश्य प्रतिनिधित्व है -

     25
   /   \
  20   36
 / \   / \
10 22 30 40

आइए अब अपने स्वयं के बाइनरी सर्च ट्री को जावास्क्रिप्ट भाषा में लागू करें।

चरण 1:नोड क्लास

यह वर्ग बीएसटी में विभिन्न बिंदुओं पर मौजूद एकल नोड का प्रतिनिधित्व करेगा। एक बीएसटी कुछ और नहीं बल्कि ऊपर वर्णित नियमों के अनुसार रखे गए डेटा और चाइल्ड संदर्भों को संग्रहीत करने वाले नोड्स का एक संग्रह है।

class Node{
   constructor(data) {
      this.data = data;
      this.left = null;
      this.right = null;
   };
};

एक नया नोड उदाहरण बनाने के लिए, हम इस वर्ग को कुछ डेटा के साथ इस तरह से कॉल कर सकते हैं -

const newNode = new Node(23);

यह 23 पर सेट डेटा के साथ एक नया नोड इंस्टेंस बनाएगा और बाएं और दाएं संदर्भ दोनों शून्य होंगे।

चरण 2:बाइनरी सर्च ट्री क्लास:

class BinarySearchTree{
   constructor(){
      this.root = null;
   };
};

यह बाइनरी सर्च ट्री क्लास बनाएगा जिसे हम एट्री इंस्टेंस बनाने के लिए नए कीवर्ड के साथ कॉल कर सकते हैं।

अब जैसा कि हमने मूल सामग्री के साथ किया है, चलो सही जगह पर एक नया नोड डालने के लिए आगे बढ़ते हैं (परिभाषा में वर्णित बीएसटी के नियमों के अनुसार)।

चरण 3:BST में एक नोड सम्मिलित करना

class BinarySearchTree{
   constructor(){
      this.root = null;
   }
   insert(data){
      var newNode = new Node(data);
      if(this.root === null){
         this.root = newNode;
      }else{
         this.insertNode(this.root, newNode);
      };
   };
   insertNode(node, newNode){
      if(newNode.data < node.data){
         if(node.left === null){
            node.left = newNode;
         }else{
            this.insertNode(node.left, newNode);
         };
      } else {
         if(node.right === null){
            node.right = newNode;
         }else{
            this.insertNode(node.right,newNode);
         };
      };
   };
};

उदाहरण

पूर्ण बाइनरी सर्च ट्री कोड:

class Node{
   constructor(data) {
      this.data = data;
      this.left = null;
      this.right = null;
   };
};
class BinarySearchTree{
   constructor(){
      this.root = null;
   }
   insert(data){
      var newNode = new Node(data);
      if(this.root === null){
         this.root = newNode;
      }else{
         this.insertNode(this.root, newNode);
      };
   };
   insertNode(node, newNode){
      if(newNode.data < node.data){
         if(node.left === null){
            node.left = newNode;
         }else{
            this.insertNode(node.left, newNode);
         };
      } else {
         if(node.right === null){
            node.right = newNode;
         }else{
            this.insertNode(node.right,newNode);
         };
      };
   };
};
const BST = new BinarySearchTree();
BST.insert(1);
BST.insert(3);
BST.insert(2);

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

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

  1. डेटा संरचना में संतुलित बाइनरी सर्च ट्री

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

  1. डेटा संरचनाओं में बाइनरी ट्री ट्रैवर्सल

    इस खंड में हम बाइनरी सर्च ट्री में मौजूद ट्रैवर्स कीज़ के लिए अलग-अलग ट्रैवर्सल एल्गोरिदम देखेंगे। ये ट्रैवर्सल इनऑर्डर ट्रैवर्सल, प्रीऑर्डर ट्रैवर्सल, पोस्टऑर्डर ट्रैवर्सल और लेवल ऑर्डर ट्रैवर्सल हैं। मान लीजिए हमारे पास एक ऐसा पेड़ है - इनऑर्डर ट्रैवर्सल अनुक्रम इस तरह होगा - 5 8 10 15 16 20 2