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

जावास्क्रिप्ट में एक पेड़ में एक कुंजी डालना


नए बने बाइनरी ट्री में पहला इंसर्शन रूट पर एक नोड बनाता है। बाएँ बच्चों के माता-पिता से छोटे होने और दाएँ बच्चे के माता-पिता से बड़े होने की बाइनरी सर्च ट्री संपत्ति के अनुसार आगे सम्मिलन डाला जाएगा।

आइए देखें कि हम इस एल्गोरिथम को कोड में कैसे लागू कर सकते हैं -

उदाहरण

insertIter (डेटा) { नोड =नया यह दें। नोड (डेटा); // जांचें कि क्या पेड़ खाली है अगर (this.root ===null) {// पहले तत्व के रूप में डालें this.root =node; वापसी; } चलो currNode =this.root; जबकि (सच) { अगर (डेटा  

आइए समझते हैं कि यह फंक्शन कैसे काम करता है। सबसे पहले, हम जांचते हैं कि क्या रूट एक नल है जिसका अर्थ है कि पेड़ खाली है यदि हाँ तो हम रूट के रूप में नया नोड असाइन करते हैं और हम कर चुके हैं। यदि नहीं, तो हम एक currNode चर बनाते हैं और इसे रूट पर इंगित करते हैं। फिर हम जाँचते हैं कि हमारा डेटा currNode से कम है या नहीं, यदि है तो हम जाँचते हैं कि उसका बायाँ बच्चा शून्य है या नहीं। अगर ऐसा है तो हम अपना डेटा यहीं रखते हैं और बाहर निकल जाते हैं। अन्यथा हम तब तक पुनरावृति करते रहते हैं जब तक हम एक पत्ते तक नहीं पहुंच जाते और अंत में अपना डेटा वहां रख देते हैं।

आप -

. का उपयोग करके इस फ़ंक्शन का परीक्षण कर सकते हैं

उदाहरण

 बीएसटी =नया बाइनरीसर्च ट्री (); बीएसटी.इन्सर्टइटर (10); बीएसटी.इन्सर्टइटर (15); बीएसटी.इन्सर्टइटर (5); बीएसटी.इन्सर्टइटर (50); बीएसटी.इन्सर्टइटर (3); बीएसटी.इन्सर्टइटर ( 7);BST.insertIter(12);

हम इस फ़ंक्शन को पुनरावर्ती भी बना सकते हैं। पेड़ स्वाभाविक रूप से पुनरावर्ती संरचनाएं हैं और हम इस पुनरावर्ती संपत्ति का उपयोग काफी आसानी से कर सकते हैं। आइए इन्सर्ट के पुनरावर्ती संस्करण को देखें -

उदाहरण

insertRec(data) { नोड =नया यह दें। नोड (डेटा); // जांचें कि क्या पेड़ खाली है अगर (this.root ===null) {// पहले तत्व के रूप में डालें this.root =node; } और {insertRecHelper(this.root, node); }} 

हमें एक सहायक फ़ंक्शन बनाने की ज़रूरत है जो रिकर्स कर सके लेकिन हम इसे कक्षा की संपत्ति के रूप में उजागर नहीं करना चाहते हैं, इसलिए यह फ़ंक्शन वर्ग परिभाषा से बाहर हो जाएगा।

उदाहरण

function insertRecHelper(root, node) { if (node.data  

आप इसका उपयोग करके परीक्षण कर सकते हैं -

उदाहरण

 बीएसटी =नया बाइनरीसर्च ट्री (); बीएसटी.insertRec (10); BST.insertRec (15); BST.insertRec (5); BST.insertRec (50); BST.insertRec (3); BST.insertRec ( 7);BST.insertRec(12);

  1. जावास्क्रिप्ट में एवीएल रोटेशन

    स्वयं को संतुलित करने के लिए, एक AVL वृक्ष निम्नलिखित चार प्रकार के घूर्णन कर सकता है - बाएं घुमाव राइट रोटेशन बाएं-दाएं घुमाव दाएं-बाएं घुमाव पहले दो रोटेशन सिंगल रोटेशन हैं और अगले दो रोटेशन डबल रोटेशन हैं। एक असंतुलित पेड़ के लिए हमें कम से कम 2 ऊंचाई वाले पेड़ की जरूरत होती है। इस साधारण पेड़

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

    इस ट्रैवर्सल मेथड में, पहले लेफ्ट सबट्री, फिर रूट और बाद में राइट सब-ट्री का दौरा किया जाता है। हमें हमेशा याद रखना चाहिए कि प्रत्येक नोड स्वयं एक सबट्री का प्रतिनिधित्व कर सकता है। यदि बाइनरी ट्री को क्रम में ट्रेस किया जाता है , आउटपुट आरोही क्रम में क्रमबद्ध कुंजी मान उत्पन्न करेगा। हम A, . स

  1. जावास्क्रिप्ट में प्राइम का एल्गोरिदम

    Prims algorithm एक लालची एल्गोरिथम है जो भारित अप्रत्यक्ष ग्राफ के लिए न्यूनतम फैले हुए पेड़ को ढूंढता है। यह किनारों का एक सबसेट ढूंढता है जो एक पेड़ बनाता है जिसमें प्रत्येक शीर्ष शामिल होता है, जहां पेड़ के सभी किनारों का कुल वजन कम से कम होता है। एल्गोरिथम इस पेड़ को एक बार में एक शीर्ष बनाकर,