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

JavaScript में बाइनरी सर्च ट्री के भीतर न्यूनतम निरपेक्ष अंतर ढूंढना


हमें एक JavaScript फ़ंक्शन लिखना है जो कुछ संख्यात्मक डेटा रखने वाले BST की जड़ लेता है जैसे:

1 \ 3 / 2

फ़ंक्शन को ट्री के किन्हीं दो नोड्स के बीच न्यूनतम निरपेक्ष अंतर वापस करना चाहिए।

उदाहरण

उपरोक्त ट्री के लिए, आउटपुट होना चाहिए:

const output = 1;

क्योंकि |1 - 2| = |3 - 2| = 1

कोड

class Node{    constructor(data) {       this.data = data;       this.left = null;       this.right = null;    }; }; class BinarySearchTree{    constructor(){       // root of a binary seach tree       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); const getMinimumDifference = function(root) {    const nodes = [];    const dfs = (root) => {       if(root) {          dfs(root.left);          nodes.push(root.data);          dfs(root.right);       };    };    dfs(root);    let result = nodes[1] - nodes[0];    for(let i = 1; i < nodes.length - 1; i++) {       result = Math.min(result, nodes[i + 1] - nodes[i]);    };    return result; }; console.log(getMinimumDifference(BST.root));

आउटपुट

कंसोल में आउटपुट होगा:

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

    इस ट्रैवर्सल मेथड में, रूट नोड को अंत में विजिट किया जाता है, इसलिए इसका नाम। पहले हम लेफ्ट सबट्री को ट्रैवर्स करते हैं, फिर राइट सबट्री को और अंत में रूट नोड को। हम A से शुरू करते हैं, और पोस्ट-ऑर्डर ट्रैवर्सल का पालन करते हुए, हम पहले लेफ्ट सबट्री B को विजिट करते हैं। B को भी पोस्ट-ऑर्डर में ट्र

  1. पायथन में बाइनरी सर्च ट्री का निम्नतम सामान्य पूर्वज पायथन में बाइनरी सर्च ट्री का निम्नतम सामान्य पूर्वज

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री है। हमें दो दिए गए नोड्स का निम्नतम सामान्य पूर्वज नोड ढूंढना है। दो नोड्स p और q का LCA वास्तव में ट्री में सबसे निचला नोड है जिसमें p और q दोनों वंशज के रूप में हों। यदि बाइनरी ट्री [6, 2, 8, 0, 4, 7, 9, null, null, 3, 5] जैसा है। ट्री इस तरह होगा: यहां 2

  1. पायथन में क्रमबद्ध सरणी को बाइनरी सर्च ट्री में बदलें पायथन में क्रमबद्ध सरणी को बाइनरी सर्च ट्री में बदलें

    मान लीजिए हमारे पास एक क्रमबद्ध सरणी A है। हमें एक ऊंचाई-संतुलित बाइनरी सर्च ट्री उत्पन्न करना है। इस समस्या में, एक ऊंचाई-संतुलित बाइनरी ट्री वास्तव में एक बाइनरी ट्री है जिसमें हर नोड के दो सबट्री की गहराई 1 से अधिक नहीं होती। मान लीजिए सरणी [-10, -3, 0, 5, 9] जैसी है। तो एक संभावित आउटपुट होगा: