अनवैल्यूड बाइनरी सर्च ट्री
यदि ट्री के प्रत्येक नोड का मान समान है, तो बाइनरी सर्च ट्री का कोई मूल्य नहीं है।
समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो एक बीएसटी की जड़ लेता है और अगर और केवल तभी लौटाता है जब दिए गए पेड़ का मूल्यांकन नहीं किया जाता है, अन्यथा झूठा होता है।
उदाहरण के लिए, यदि पेड़ के नोड हैं -
कॉन्स्ट इनपुट =[5, 5, 5, 3, 5, 6];
तब आउटपुट होना चाहिए -
कॉन्स्ट आउटपुट =झूठा;
उदाहरण
इसके लिए कोड होगा -
क्लास नोड {कन्स्ट्रक्टर (डेटा) { यह डेटा =डेटा; यह बाएं =शून्य; यह सही =शून्य; };}; क्लास बाइनरीसर्च ट्री { कंस्ट्रक्टर () {// एक बाइनरी सीच ट्री की जड़ this.root =null; } सम्मिलित करें (डेटा) {var newNode =नया नोड (डेटा); if(this.root ===null){ this.root =newNode; }else{ this.insertNode(this.root, newNode); }; }; इंसर्ट नोड (नोड, न्यूनोड) {अगर (नया नोड। डेटा <नोड। डेटा) {अगर (नोड। लेफ्ट ===नल) {नोड। }else{ this.insertNode(node.left, newNode); }; } और { अगर (नोड। राइट ===नल) {नोड। राइट =न्यूनोड; }else{ this.insertNode(नोड.राइट,न्यूनोड); }; }; };}; 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 हेल्पर =(नोड, पिछला) => {if (!node) {रिटर्न ट्रू} if (नोड.डेटा!==पिछला) {वापसी असत्य} let isLeftValid =ट्रू लेट isRightValid =true if (नोड.लेफ्ट) {isLeftValid =हेल्पर (नोड। लेफ्ट, पिछला)} अगर (isLeftValid &&node.right) {isRightValid =हेल्पर (नोड। राइट, पिछला)} रिटर्न isLeftValid &&isRightValid } अगर ( !root) {रिटर्न ट्रू} रिटर्न हेल्पर (रूट, रूट.डेटा)};कंसोल.लॉग(isUnivalued(BST.root));
आउटपुट
और कंसोल में आउटपुट होगा -
<पूर्व>झूठा