今天去一个软件公司面试,出的题,写不出,望达人解答一下
编写一个模板队列类,并实现以下方法:
(1) void add(Type elem) 向队列尾中添加元素;
(2) Type remove() 从队列头中删除元素;
(3) bool is_empty() 判断队列是否为空;
另外,定义一个重载的析取运算符operator <<,使得可以直接输出队列对象的值。
具体要求:
(1)用链表实现链表元素的存放;
(2)定义一个模板类QueueItem,存放模板类Queue的一个节点,并将Queue定义为QueueItem的友元类;
(3)将Queue模板类的定义放到头文件 queue.h中;
(4)以下是测试你所设计的类的程序:
#include <iostream.h>
#include "queue.h"
void main()
{
Queue<int> iq;
for(int i=0; i < 10; i++)
iq.add(i*5);
if (!iq.is_empty())
cout << iq.remove();
cout << endl;
if (!iq.is_empty())
cout << iq;
}
要求程序的输出为:
0
<5 10 15 20 25 30 35 40 4