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

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