नए बने बाइनरी ट्री में पहला इंसर्शन रूट पर एक नोड बनाता है। बाएँ बच्चों के माता-पिता से छोटे होने और दाएँ बच्चे के माता-पिता से बड़े होने की बाइनरी सर्च ट्री संपत्ति के अनुसार आगे सम्मिलन डाला जाएगा।
आइए देखें कि हम इस एल्गोरिथम को कोड में कैसे लागू कर सकते हैं -
उदाहरण
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);