#include "list.h" #include "Key.h" template class priority_queue:public List { public: void insert_queue(const List_entry ¤t, int low, int high); void build_queue(); void outputqueue(); void queue_sort(); private: Key Keyinput; }; template void priority_queue::outputqueue() { cout< void priority_queue::insert_queue(const List_entry ¤t, int low, int high) { int large; large=2*low+1; while(large<=high) { if (large=entry[large]) break; else { entry[low]=entry[large]; low=large; large=2*low+1; } } entry[low]=current; } template void priority_queue::queue_sort() { List_entry current; int last_unsorted; build_queue(); for (last_unsorted = count - 1; last_unsorted > 0; last_unsorted--) { current = entry[last_unsorted]; entry[last_unsorted] = entry[0]; insert_queue(current, 0, last_unsorted - 1); } } template void priority_queue::build_queue() { int low; for (low=count/2-1; low>=0; low--) { List_entry current=entry[low]; insert_queue(current, low , count-1); } }