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

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


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

मान लीजिए हमारे पास ऐसा एक ट्री है:

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

ट्रैवर्सल क्रम इस प्रकार होगा: 10, 5, 8, 16, 15, 20, 23

एल्गोरिदम

preorderTraverse(root): Begin    if root खाली नहीं है, then       रूट का मान प्रिंट करें       preorderTraversal(root का लेफ्ट)       preorderTraversal(root का राइट)    end if End

उदाहरण

#include<iostream> using namespace std; class node{    public:       int h_left, h_right, bf, value;       node *left, *right; }; class tree{    private:       node *get_node(int key);    public:       node *root;       tree(){          root = NULL; //शुरुआत में रूट को NULL सेट करें       }       void preorder_traversal(node *r);       node *insert_node(node *root, int key); }; node *tree::get_node(int key){    node *new_node;    new_node = new node; //डायनामिक रूप से एक नया नोड बनाएं    new_node->h_left = 0; new_node->h_right = 0;    new_node->bf = 0;    new_node->value = key; //दिए गए की से मान स्टोर करें    new_node->left = NULL; new_node->right = NULL;    return new_node; } void tree::preorder_traversal(node *r){    if(r != NULL){ //जब रूट मौजूद है, लेफ्ट - रूट - राइट विजिट करें       cout << r->value << " ";       preorder_traversal(r->left);       preorder_traversal(r->right);    } } node *tree::insert_node(node *root, int key){    if(root == NULL){       return (get_node(key)); //जब ट्री खाली है, रूट के रूप में एक नोड बनाएं    }    if(key < root->value){ //जब की रूट मान से छोटी है, बाएं जाएं       root->left = insert_node(root->left, key);    }else if(key > root->value){ //जब की रूट मान से बड़ी है, दाएं जाएं       root->right = insert_node(root->right, key);    }    return root; //जब की पहले से मौजूद है, इसे फिर से इन्सर्ट न करें } main(){    node *root;    tree 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 << "Pre-Order Traversal: ";    my_tree.preorder_traversal(my_tree.root); }

आउटपुट

Pre-Order Traversal: 10 5 8 16 15 20 23
  1. डेटा स्ट्रक्चर में बाइनरी ट्री और गुण डेटा स्ट्रक्चर में बाइनरी ट्री और गुण

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

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

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

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

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