इस ट्रैवर्सल मेथड में, पहले लेफ्ट सबट्री, फिर रूट और बाद में राइट सब-ट्री का दौरा किया जाता है। हमें हमेशा याद रखना चाहिए कि प्रत्येक नोड स्वयं एक सबट्री का प्रतिनिधित्व कर सकता है।
यदि बाइनरी ट्री को क्रम में ट्रेस किया जाता है , आउटपुट आरोही क्रम में क्रमबद्ध कुंजी मान उत्पन्न करेगा।
हम A, . से शुरू करते हैं और इन-ऑर्डर ट्रैवर्सल के बाद, हम इसके बाएँ सबट्री B पर जाते हैं। बी क्रमानुसार भी किया जाता है। प्रक्रिया तब तक चलती है जब तक सभी नोड्स का दौरा नहीं किया जाता है। इस ट्री के इनऑर्डर ट्रैवर्सल का आउटपुट होगा -
D → B → E → A → F → C → G
यह वह एल्गोरिथम है जिसे हम लागू करेंगे -
- बाएं सबट्री को रिकर्सिवली ट्रैवर्स करें
- नोड का डेटा प्रिंट करें
- पुनरावर्ती रूप से दाएं उप-वृक्ष को पार करें
आइए देखें कि हम इसे अपनी कक्षा में कैसे लागू करेंगे। चूंकि हम नहीं चाहते कि उपयोगकर्ता स्वयं रूट पास करें, हम फिर से कक्षा के बाहर एक सहायक फ़ंक्शन बनाने जा रहे हैं।
inOrder() {inOrderHelper(this.root);}
हेल्पर फंक्शन -
उदाहरण
फ़ंक्शन inOrderHelper(root) { if (root !==null) {inOrderHelper(root.left); कंसोल.लॉग (रूट.डेटा); इनऑर्डर हेल्पर (रूट। राइट); }}पूर्व>आप इसका उपयोग करके परीक्षण कर सकते हैं -
उदाहरण
बीएसटी =नया बाइनरीसर्च ट्री (); बीएसटी.insertRec (10); BST.insertRec (15); BST.insertRec (5); BST.insertRec (50); BST.insertRec (3); BST.insertRec ( 7);BST.insertRec(12);BST.inOrder();आउटपुट
यह आउटपुट देगा -
35710121550ध्यान दें कि तत्वों को क्रमबद्ध क्रम में मुद्रित किया गया था। इसका कारण यह है कि चूंकि हम पहले बाएं सबट्री को पुनरावर्ती रूप से खोजते हैं, इसलिए हमें पहले सबसे छोटे मान मिलते हैं। यह अंत तक चलता रहता है और हमें सभी तत्व क्रमबद्ध क्रम में मिलते हैं।