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

JavaScript में यूनिवैल्यूड बाइनरी सर्च ट्री की जांच


यूनिवैल्यूड बाइनरी सर्च ट्री

एक बाइनरी सर्च ट्री यूनिवैल्यूड है यदि ट्री में हर नोड का मान समान है।

समस्या

हमें एक JavaScript फ़ंक्शन लिखना है जो BST की जड़ लेता है और true वापस करता है यदि और केवल यदि दिया गया ट्री यूनिवैल्यूड है, अन्यथा false।

उदाहरण के लिए, यदि ट्री के नोड्स हैं -

const input = [5, 5, 5, 3, 5, 6];

तो आउटपुट होना चाहिए -

const output = false;

उदाहरण

इसके लिए कोड होगा -

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(5); 
BST.insert(5); 
BST.insert(5); 
BST.insert(3); 
BST.insert(5); 
BST.insert(6); 
const isUnivalued = (root) => { 
  const helper = (node, prev) => { 
    if (!node) { 
      return true; 
    } 
    if (node.data !== prev) { 
      return false; 
    } 
    let isLeftValid = true; 
    let isRightValid = true; 
    if (node.left) { 
      isLeftValid = helper(node.left, prev); 
    } 
    if (isLeftValid && node.right) { 
      isRightValid = helper(node.right, prev); 
    } 
    return isLeftValid && isRightValid; 
  } 
  if (!root) { 
    return true; 
  } 
  return helper(root, root.data); 
}; 
console.log(isUnivalued(BST.root));

आउटपुट

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

false

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

    बाइनरी सर्च ट्री एक विशेष व्यवहार प्रदर्शित करता है। एक नोड का बायां चाइल्ड का मान उसके पैरेंट के मान से कम होना चाहिए और नोड के दाएं चाइल्ड का मान उसके पैरेंट के मान से अधिक होना चाहिए। हम इस खंड में मुख्य रूप से ऐसे ट्रीज़ पर ध्यान केंद्रित करेंगे। बाइनरी सर्च ट्री पर ऑपरेशन्स हम बाइनरी सर्च ट्र

  1. जावास्क्रिप्ट में बाइनरी ट्री जावास्क्रिप्ट में बाइनरी ट्री

    बाइनरी ट्री डेटा स्टोरेज उद्देश्यों के लिए उपयोग की जाने वाली एक विशेष डेटा संरचना है। बाइनरी ट्री में एक विशेष शर्त होती है कि प्रत्येक नोड में अधिकतम दो चाइल्ड हो सकते हैं। बाइनरी ट्री में एक क्रमबद्ध ऐरे और एक लिंक्ड लिस्ट दोनों के लाभ होते हैं क्योंकि सर्च क्रमबद्ध ऐरे की तरह तेज़ होता है और इं

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

    परिचय जावास्क्रिप्ट में स्ट्रिंग खोजने के लिए search() मेथड का उपयोग किया जाता है जो रेगुलर एक्सप्रेशन (या स्ट्रिंग जो रेगएक्सप में परिवर्तित हो जाती है) लेता है और पहले मिलान का इंडेक्स लौटाता है, या -1 यदि नहीं मिला। उदाहरण निम्न कोड जावास्क्रिप्ट में स्ट्रिंग खोजने के लिए है: <!DOCTYPE html