इस ट्यूटोरियल में, हम बाइनरी सर्च ट्री को मिन हीप में बदलने के लिए एक प्रोग्राम पर चर्चा करेंगे।
इसके लिए हमें एक बाइनरी सर्च ट्री प्रदान किया जाएगा। हमारा काम दिए गए बाइनरी सर्च ट्री को मिन हीप में बदलना है जैसे कि बाइनरी सर्च ट्री की स्थिति का पालन करते हुए जब तत्वों की खुद से तुलना की जाती है।
उदाहरण
#includeनेमस्पेस एसटीडी का उपयोग करना;//बीएसटीस्ट्रक्चर नोड की नोड संरचना { int डेटा; नोड *बाएं, *दाएं;};//नोड क्रिएशनस्ट्रक्ट नोड* getNode(int data) {स्ट्रक्चर नोड *newNode =new Node; नया नोड-> डेटा =डेटा; नया नोड-> बाएं =नया नोड-> दाएं =न्यूल; नया नोड लौटाएं;}//प्रीऑर्डर ट्रैवर्सलवॉइड प्रीऑर्डर ट्रैवर्सल (नोड *); // सॉर्ट किए गए फैशन में मानों को संग्रहीत करना // इनऑर्डर ट्रैवर्सलॉइड इनऑर्डर ट्रैवर्सल (नोड * रूट, वेक्टर और एआर) के साथ {अगर (रूट ==न्यूल) वापसी; इनऑर्डरट्रैवर्सल (रूट-> लेफ्ट, एआर); arr.push_back (रूट-> डेटा); inorderTraversal(root->right, arr);}//BST को min heapvoid Convert_BSPheap(Node *root, vector arr, int *i) {if (root ==NULL) रिटर्न में कनवर्ट करना; रूट-> डेटा =एआर [++* i]; Convert_BSPheap (रूट-> बाएँ, गिरफ्तार, i); Convert_BSPheap(root->right, arr, i);}// min heapvoid Convert_minheap(Node *root) {//vector में नोड्स वेक्टर के मानों को संग्रहीत करना arr; इंट मैं =-1; // इनऑर्डर ट्रैवर्सल इनऑर्डर ट्रैवर्सल (रूट, एआर) के माध्यम से आगे बढ़ना; Convert_BSPheap(root, arr, &i);}//प्रीऑर्डर ट्रैवर्सलवॉइड प्रीऑर्डरट्रैवर्सल(नोड *रूट) { अगर (!रूट) रिटर्न; cout <<रूट-> डेटा <<""; प्रीऑर्डर ट्रैवर्सल (रूट-> बाएं); प्रीऑर्डर ट्रैवर्सल (रूट-> राइट);} इंट मेन () {स्ट्रक्चर नोड * रूट =गेटनोड (4); रूट-> लेफ्ट =गेटनोड (2); रूट-> राइट =गेटनोड (6); रूट-> लेफ्ट-> लेफ्ट =गेटनोड (1); रूट-> लेफ्ट-> राइट =गेटनोड (3); रूट-> राइट-> लेफ्ट =गेटनोड (5); रूट-> राइट-> राइट =गेटनोड (7); कन्वर्ट_मिनहेप (रूट); cout <<"प्रीऑर्डर ट्रैवर्सल:" <<एंडल; प्रीऑर्डरट्रैवर्सल (रूट); वापसी 0;}