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

डेटा संरचनाओं में ट्री ट्रैवर्सल को प्रीऑर्डर करें

इस खंड में हम बाइनरी सर्च ट्री के लिए प्री-ऑर्डर ट्रैवर्सल तकनीक (रिकर्सिव) देखेंगे।

मान लीजिए हमारे पास एक ऐसा पेड़ है -

डेटा संरचनाओं में ट्री ट्रैवर्सल को प्रीऑर्डर करें

ट्रैवर्सल अनुक्रम इस प्रकार होगा: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

  1. डेटा संरचनाओं में बाइनरी पेड़ और गुण

    इस खंड में हम एक बाइनरी ट्री डेटा संरचना के कुछ महत्वपूर्ण गुण देखेंगे। मान लीजिए हमारे पास इस तरह का एक बाइनरी ट्री है। कुछ गुण हैं - स्तर l पर नोड्स की अधिकतम संख्या $2^{l-1}$ होगी। यहां स्तर रूट से नोड तक पथ पर नोड्स की संख्या है, जिसमें रूट भी शामिल है। हम विचार कर रहे हैं कि जड़ का स्तर 1 ह

  1. डेटा संरचनाओं में बाइनरी ट्री प्रतिनिधित्व

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

  1. पायथन में प्रीऑर्डर और इनऑर्डर ट्रैवर्सल से बाइनरी ट्री का निर्माण करें

    मान लीजिए कि हमारे पास एक बाइनरी ट्री का इनऑर्डर और प्रीऑर्डर ट्रैवर्सल सीक्वेंस है। हमें इन अनुक्रमों से वृक्ष उत्पन्न करना है। तो अगर प्रीऑर्डर और इनऑर्डर अनुक्रम [3,9,20,15,7] और [9,3,15,20,7] हैं, तो ट्री होगा - आइए चरणों को देखें - मान लीजिए कि विधि को प्रीऑर्डर और इनऑर्डर सूचियों के साथ बि