Thursday 15 August 2013

c++ - Priority Queue of Nodes -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 2 जवाब

    मैंने एक प्राथमिकता बनाई है नोड्स की कतार, मैंने कतार में नोड को 'धक्का दिया', धारणा के साथ कि यह पूर्णांक मानों के क्रम में नोड्स को सॉर्ट करेगा शायद कि मुझसे गलती हुई थी। नोड में गुण हैं, इंट फ़्रीक, और चार सी। मैं इसे ints के क्रम में हल करना चाहता हूँ, सबसे छोटी से सबसे छोटी।

      priority_queue & lt; नोड * & gt; क्यू; के लिए (i = 0; i & lt; 95; i ++) {क्यू। पश (नोड_अरे [i]); } के लिए (i = 0; i & lt; 95; i ++) {cout & lt; & lt; Q.top () & lt; & lt; endl; Q.pop (); }   

    मैं इसे 'freq' के क्रम में कैसे बना सकता हूं?

    आपकी प्राथमिकता की तुलना पॉइंटर्स, यानी मेमोरी पतों की तुलना कर रहा है। आपको नोड से तुलना करने वाले द्विआधारी मकसद प्रदान करने की आवश्यकता होती है जो दो नोड * लेता है और इच्छित तर्क को लागू करता है:

      struct node_cmp {bool operator () (const node * a, Const नोड * ख) कन्वर्स (रिटर्न ए- & gt; कुछ फिल्ड & lt; बी & gt; someField; }};   

    प्राथमिकता कतार को इन्स्तांत करने के लिए इसका प्रयोग करें:

      std :: priority_queue & lt; नोड *, std :: vector & lt; नोड * & gt ;, node_cmp & gt; क्यू;    

No comments:

Post a Comment