前几个例程还是相当简单的,把链表即时改了一下就是队列了。
还有想了一下,决定这种例程的代码放法是:先把测试代码默认折叠放在前面,然后把实现代码默认展开放在后面。
测试代码如下:
1 #include <iostream> 2 #include "queue.h" 3 using namespace std; 4 using namespace queue; 5 template class Queue<int>; 6 int main(void) 7 { 8 Queue<int> number; 9 10 //测试插入 11 cout << "/*additem()*/" << endl; 12 number.enqueue(2); 13 number.enqueue(3); 14 number.enqueue(5); 15 number.enqueue(7); 16 number.enqueue(11); 17 number.traverse(); 18 cout << "\n/*end*/\n\n" << flush; 19 20 //测试获取长度 21 cout << "/*length()*/" << endl; 22 cout << number.size() << endl; 23 cout << "/*end*/\n\n" << flush; 24 25 //测试获得头元素 26 cout << "/*getfirst()*/" << endl; 27 cout << number.getfirst() << endl; 28 cout << "/*end*/\n\n" << flush; 29 30 //测试获得尾元素 31 cout << "/*getfirst()*/" << endl; 32 cout << number.getlast() << endl; 33 cout << "/*end*/\n\n" << flush; 34 35 //测试出队 36 cout << "/*remove()*/" << endl; 37 number.dequeue(); 38 number.dequeue(); 39 number.traverse(); 40 cout << "\n/*end*/\n\n" << flush; 41 42 //测试清空,并测试从空表中出队 43 cout << "/*clear(),remove()*/" << endl; 44 number.clear(); 45 number.dequeue(); 46 cout << "/*end*/\n\n" << flush; 47 48 system("pause"); 49 }