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

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


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

यदि बाइनरी ट्री को क्रम में ट्रेस किया जाता है , आउटपुट आरोही क्रम में क्रमबद्ध कुंजी मान उत्पन्न करेगा।

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

हम 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

ध्यान दें कि तत्वों को क्रमबद्ध क्रम में मुद्रित किया गया था। इसका कारण यह है कि चूंकि हम पहले बाएं सबट्री को पुनरावर्ती रूप से खोजते हैं, इसलिए हमें पहले सबसे छोटे मान मिलते हैं। यह अंत तक चलता रहता है और हमें सभी तत्व क्रमबद्ध क्रम में मिलते हैं।


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

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

  1. जावास्क्रिप्ट में पेड़ के लिए वस्तुओं की फ्लैट सरणी

    मान लीजिए, हमारे पास इस तरह की वस्तुओं की एक सरणी है - const arr = [    { id: '1', name: 'name 1', parentId: null },    { id: '2', name: 'name 2', parentId: null },    { id: '2_1', name: 'name 2_1', parentId: '2' }

  1. C++ में BST को ग्रेटर ट्री में बदलें

    मान लीजिए कि हमारे पास एक बाइनरी सर्च ट्री है, हमें इसे एक ग्रेटर ट्री में बदलना है, जैसे कि मूल बीएसटी की प्रत्येक कुंजी मूल कुंजी में बदल जाती है + बीएसटी में मूल कुंजी से अधिक सभी कुंजियों का योग। तो, अगर इनपुट पसंद है तो आउटपुट होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - एक फ