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

C++ में BST को न्यूनतम हीप में बदलें

इस ट्यूटोरियल में, हम बाइनरी सर्च ट्री को मिन हीप में बदलने के लिए एक प्रोग्राम पर चर्चा करेंगे।

इसके लिए हमें एक बाइनरी सर्च ट्री प्रदान किया जाएगा। हमारा काम दिए गए बाइनरी सर्च ट्री को मिन हीप में बदलना है जैसे कि बाइनरी सर्च ट्री की स्थिति का पालन करते हुए जब तत्वों की खुद से तुलना की जाती है।

उदाहरण

#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;}

आउटपुट

<पूर्व-आदेश ट्रैवर्सल:1 2 3 4 5 6 7
  1. सी ++ में बीएसटी में नोड हटाएं

    मान लीजिए कि हमारे पास एक बाइनरी सर्च ट्री है। हम एक कुंजी k लेंगे, और हमें दिए गए कुंजी k को BST से हटाना होगा, और अद्यतन BST को वापस करना होगा। तो अगर पेड़ जैसा है - और कुंजी k =3, तो आउटपुट ट्री होगा - इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - रूट नोड को हटाने के लिए deleteR

  1. सी ++ में द्विपद ढेर?

    द्विपद हीप को बाइनरी हीप के विस्तार के रूप में परिभाषित किया गया है जो बाइनरी हीप द्वारा प्रदान किए गए अन्य कार्यों के साथ तेजी से विलय या संघ संचालन प्रदान करता है। द्विपद ढेर को द्विपद वृक्षों के संग्रह के रूप में माना जाता है। द्विपद वृक्ष क्या है? क्रम k-1 के दो द्विपद वृक्षों को लेकर और एक क

  1. C++ में मिन हीप में मान x से कम के सभी नोड्स प्रिंट करें

    इस समस्या में, हमें एक मिनी हीप दिया जाता है और एक मान x और हमें x से कम के सभी नोड्स को प्रिंट करना होगा। न्यूनतम ढेर एक विशेष प्रकार का बाइनरी ट्री है जिसमें प्रत्येक नोड का मान उसके चाइल्ड नोड के नोड मान से कम होता है। आइए समस्या को समझने के लिए एक उदाहरण लेते हैं - X =45 आउटपुट - 2 4 7 10