समस्या:
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो दो बाइनरी सर्च ट्री, रूट 1 और रूट 2 की जड़ों को क्रमशः पहले और दूसरे तर्क के रूप में लेता है। फ़ंक्शन का तीसरा तर्क संख्या, लक्ष्य है।
हमारे फ़ंक्शन को ट्रू वापस करना चाहिए अगर और केवल तभी जब पहले पेड़ में एक नोड और दूसरे पेड़ में एक नोड होता है जिसका मान किसी दिए गए पूर्णांक लक्ष्य तक होता है, अन्यथा गलत।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const target =23;
बीएसटी
तब आउटपुट होना चाहिए -
कॉन्स्ट आउटपुट =सत्य;
आउटपुट स्पष्टीकरण:
क्योंकि पहले पेड़ में 6 और दूसरे में 17 होते हैं, जिनका योग 23 होता है।
उदाहरण
इसके लिए कोड होगा -
क्लास नोड {कन्स्ट्रक्टर (डेटा) { यह डेटा =डेटा; यह बाएं =शून्य; यह सही =शून्य; };}; क्लास बाइनरीसर्च ट्री { कंस्ट्रक्टर () {// एक बाइनरी सीच ट्री की जड़ 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 tree1 =new BinarySearchTree();tree1.insert(1);tree1.insert(3);tree1.insert(4);tree1.insert(2);tree1.insert(4);tree1.insert (5);tree1.insert(6);const tree2 =new BinarySearchTree();tree2.insert(9);tree2.insert(6);tree2.insert(11);tree2.insert(3);tree2.insert (8);tree2.insert(10);tree2.insert(17);const TwoSumBSTs =(root1, root2, target) => {if(root1 ==null || root2 ==null) return false; if(root1.data + root2.data ==target) सही लौटें; if(root1.data + root2.dataआउटपुट
और कंसोल में आउटपुट होगा -
<पूर्व>सत्य