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

JavaScript में बाइनरी सर्च ट्री लागू करना


ट्री डेटा संरचना

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

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

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

उदाहरण के लिए, एक वैध BST का दृश्य प्रतिनिधित्व:

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

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

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

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

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

कुछ डेटा के साथ इस क्लास को कॉल करके एक नया नोड इंस्टेंस बनाया जा सकता है:

const newNode = new Node(23);

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

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

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

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

अब चूंकि हम बुनियादी चीजों के साथ हो चुके हैं, आइए BST के नियमों के अनुसार सही जगह पर एक नया नोड डालने पर आगे बढ़ें।

चरण 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>Docum

  1. डेटा संरचना में संतुलित बाइनरी खोज ट्री (Balanced Binary Search Trees) डेटा संरचना में संतुलित बाइनरी खोज ट्री (Balanced Binary Search Trees)

    यहाँ हम देखेंगे कि संतुलित बाइनरी खोज ट्री (Balanced Binary Search Tree) क्या है। बाइनरी खोज ट्री (BST) बाइनरी ट्री हैं, जिनमें बाएं बच्चे में छोटा तत्व होता है, और दाएं बच्चे में बड़ा तत्व होता है। BST में तत्वों को खोजने के लिए औसत समय जटिलता O(log n) है। यह बाइनरी खोज ट्री की ऊंचाई पर निर्भर कर

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

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