#include #include #include #include "CPstring.h" #include "vector.h" #include "pqueue.cc" template void TestQ(const PQueue & q) { PQueue pq = q; K thing; P priority; while (! pq.isEmpty()) { pq.deletemin(thing,priority); cout << "removed " << thing << " prio = " << priority << endl; } } int main() { PQueue sipq; PQueue iipq(100); PQueue sspq(100); PQueue sdpq(100); struct Info { string i; int count; }; Vector v(100); int size = 0; ifstream input; string name; int k,count; cout << "filename "; cin >> name; input.open(name.c_str()); while (input >> name) { name = name.Downcase(); for(k=0; k < size; k++) { if (v[k].i == name) { v[k].count++; break; } } if (k >= size) { if (size >= v.Length()) { v.resize(v.Length()*2); } v[size].i = name; v[size].count = 1; size++; } } cout << "read " << size << " words" << endl; for(k=0; k < size; k++) { sipq.insert(v[k].i,v[k].count); iipq.insert(v[k].i.length(),v[k].count); sspq.insert(v[k].i,v[k].i); sdpq.insert(v[k].i,sqrt(v[k].count)); } TestQ(sipq); TestQ(iipq); TestQ(sspq); TestQ(sdpq); }