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

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


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

यदि बाइनरी ट्री को इन-ऑर्डर ट्रैवर्स किया जाता है, तो आउटपुट आरोही क्रम में सॉर्टेड की वैल्यूज़ उत्पन्न करेगा।

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

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

D → B → E → A → F → C → G

यह वह एल्गोरिदम है जिसे हम लागू करेंगे:

  • रिकर्सिवली लेफ्ट सबट्री को ट्रैवर्स करें
  • नोड के डेटा को प्रिंट करें
  • रिकर्सिवली राइट सबट्री को ट्रैवर्स करें

आइए देखते हैं कि हम इसे अपनी क्लास में कैसे लागू करेंगे। चूंकि हम नहीं चाहते कि यूजर्स खुद रूट पास करें, हम फिर से क्लास के बाहर एक हेल्पर फ़ंक्शन बनाने जा रहे हैं।

inOrder() { inOrderHelper(this.root); }

हेल्पर फ़ंक्शन:

उदाहरण

function inOrderHelper(root) {
    if (root !== null) {
        inOrderHelper(root.left);
        console.log(root.data);
        inOrderHelper(root.right);
    }
}

आप इसका परीक्षण इस तरह कर सकते हैं:

उदाहरण

let BST = new BinarySearchTree();
BST.insertRec(10);
BST.insertRec(15);
BST.insertRec(5);
BST.insertRec(50);
BST.insertRec(3);
BST.insertRec(7);
BST.insertRec(12);
BST.inOrder();

आउटपुट

इससे निम्न आउटपुट मिलेगा:

3 5 7 10 12 15 50

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


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

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

  1. JavaScript में फ्लैट ऑब्जेक्ट सरणी को ट्री में बदलना JavaScript में फ्लैट ऑब्जेक्ट सरणी को ट्री में बदलना

    मान लीजिए, हमारे पास ऑब्जेक्ट की एक सरणी है जैसे - 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 }, { id: 2_2, name: name 2_2, parentId: 2 }, { id: 3, name: name 3, parentId: null }, { i

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

    समस्या विवरण मान लीजिए हमारे पास एक बाइनरी सर्च ट्री (BST) है, हमें इसे एक ग्रेटर ट्री में बदलना है ताकि मूल BST की प्रत्येक कुंजी को मूल कुंजी + BST में मूल कुंजी से बड़ी सभी कुंजियों के योग में बदल दिया जाए। उदाहरण यदि इनपुट ट्री है: तो आउटपुट ट्री होगा: हल करने का दृष्टिकोण इस समस्या को हल क