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

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


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

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

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

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

एल्गोरिदम

levelOrderTraverse(root): Begin    नोड्स स्टोर करने के लिए कतार que परिभाषित करें    रूट को que में इन्सर्ट करें।    while que खाली नहीं है, do       item := कतार के फ्रंट पोजीशन पर मौजूद आइटम       item का मान प्रिंट करें       अगर item का लेफ्ट नल नहीं है, then          item के लेफ्ट को que में इन्सर्ट करें       end if       अगर item का राइट नल नहीं है, then          item के राइट को que में इन्सर्ट करें       end if       que से फ्रंट एलिमेंट डिलीट करें    done End

उदाहरण

#include<iostream> #include<queue> 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 levelorder_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::levelorder_traversal(node *root){    queue <node*> que;    node *item;    que.push(root); //पहले रूट इन्सर्ट करें    while(!que.empty()){       item = que.front(); //कतार के फ्रंट एंड से एलिमेंट प्राप्त करें       cout << item->value << " ";       if(item->left != NULL) //जब लेफ्ट चाइल्ड मौजूद है, कतार में इन्सर्ट करें          que.push(item->left);       if(item->right != NULL) //जब राइट चाइल्ड मौजूद है, कतार में इन्सर्ट करें          que.push(item->right);       que.pop(); //कतार से आइटम हटाएं    } } 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 << "Level-Order Traversal: ";    my_tree.levelorder_traversal(my_tree.root); }

आउटपुट

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

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

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

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

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

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें जिगजैग लेवल ऑर्डर ट्रैवर्सल ढूंढना है। इसलिए पहली पंक्ति के लिए, बाएं से दाएं स्कैन करें, फिर दूसरी पंक्ति से दाएं से बाएं, फिर फिर से बाएं से दाएं और इसी तरह। इसलिए यदि ट्री इस तरह है -ट्रैवर्सल क्रम [[3],[20,9],[15,7]] होगा।इसे हल करने के लिए, हम इन चरणो