इस खंड में हम बाइनरी सर्च ट्री के लिए प्री-ऑर्डर ट्रैवर्सल तकनीक (रिकर्सिव) देखेंगे।
मान लीजिए हमारे पास एक ऐसा पेड़ है -
ट्रैवर्सल अनुक्रम इस प्रकार होगा:10, 5, 8, 16, 15, 20, 23
एल्गोरिदम
preorderTraverse(root):यदि रूट खाली नहीं है तो शुरू करें, फिर रूट प्रीऑर्डर ट्रैवर्सल (रूट के बाएं) प्रीऑर्डर ट्रैवर्सल (रूट का दायां) एंड ifEnd का मान प्रिंट करें।उदाहरण
#शामिल करेंनेमस्पेस का उपयोग करना;वर्ग नोड{ सार्वजनिक:int h_left, h_right, bf, value; नोड * लेफ्ट, * राइट;}; क्लास ट्री {निजी:नोड * get_node (इंट की); सार्वजनिक:नोड * रूट; ट्री () {रूट =NULL; // शुरुआत में NULL के रूप में रूट सेट करें } शून्य preorder_traversal (नोड * r); नोड *insert_node (नोड * रूट, इंट की);}; नोड * ट्री ::get_node (इंट की) {नोड * new_node; new_node =नया नोड; // एक नया नोड गतिशील रूप से बनाएं new_node->h_left =0; new_node->h_right =0; new_node->bf =0; new_node-> मान =कुंजी; // दिए गए कुंजी से मान को स्टोर करें new_node->बाएं =न्यूल; new_node-> दाएँ =NULL; नया_नोड लौटाएं;} शून्य पेड़ ::प्रीऑर्डर_ट्रैवर्सल (नोड * आर) {अगर (आर! =न्यूल) {// जब रूट मौजूद है, तो बाएं - रूट - दाएं कोउट पर जाएं <<आर-> मान <<""; प्रीऑर्डर_ट्रैवर्सल (आर-> बाएं); प्रीऑर्डर_ट्रैवर्सल (आर-> दाएं); }}नोड *ट्री::insert_node(नोड *रूट, इंट की){ अगर (रूट ==NULL){ रिटर्न (get_node(key)); // जब पेड़ खाली हो, तो रूट के रूप में एक नोड बनाएं} अगर (कुंजी <रूट-> मान) {// जब कुंजी रूट मान से छोटी हो, तो बाईं जड़ पर जाएं-> बाएं =सम्मिलित_नोड (रूट-> बाएं, कुंजी ); } और अगर (कुंजी> रूट-> मान) {// जब कुंजी रूट मान से अधिक हो, तो दाएं रूट पर जाएं-> दाएं =डालें_नोड (रूट-> दाएं, कुंजी); } वापसी जड़; // जब कुंजी पहले से मौजूद हो, तो उसे दोबारा न डालें}मुख्य(){ नोड *रूट; पेड़ my_tree; // ट्री में कुछ चाबियां डालें। my_tree.root =my_tree.insert_node(my_tree.root, 10); my_tree.root =my_tree.insert_node(my_tree.root, 5); my_tree.root =my_tree.insert_node(my_tree.root, 16); my_tree.root =my_tree.insert_node(my_tree.root, 20); my_tree.root =my_tree.insert_node(my_tree.root, 15); my_tree.root =my_tree.insert_node(my_tree.root, 8); my_tree.root =my_tree.insert_node(my_tree.root, 23); cout <<"प्री-ऑर्डर ट्रैवर्सल:"; my_tree.preorder_traversal(my_tree.root);} आउटपुट
<प्री-ऑर्डर ट्रैवर्सल:10 5 8 16 15 20 23