实现简单的stl中的Queue
2008-04-14 18:03
405 查看
#include <iostream>
using namespace std;
template <class Type>
class QueueItem
...{
public:
QueueItem(const Type&);
const Type& getData();
QueueItem* getNext();
void setNext(QueueItem*);
private:
const Type &data;
QueueItem *next;
};
template <class Type>
QueueItem<Type>::QueueItem(const Type &a):data(a)
...{
next = NULL;
}
template <class Type>
const Type& QueueItem<Type>::getData()
...{
return data;
}
template <class Type>
QueueItem<Type>* QueueItem<Type>::getNext()
...{
return next;
}
template <class Type>
void QueueItem<Type>::setNext(QueueItem<Type> *a)
...{
next = a;
}
template <class Type>
class Queue
...{
public:
Queue();
bool isEmpty();
const Type& remove();
void add(const Type&);
private:
QueueItem<Type> *front;
QueueItem<Type> *end;
};
template <class Type>
Queue<Type>::Queue()
...{
front = NULL;
end = NULL;
}
template <class Type>
bool Queue<Type>::isEmpty()
...{
return ( front == end && front == NULL );
}
template <class Type>
const Type& Queue<Type>::remove()
...{
const Type &temp = front->getData();
QueueItem<Type> *qu=front;
front = front->getNext();
if(front == NULL)
...{
end = NULL;
}
delete qu;
return temp;
}
template <class Type>
void Queue<Type>::add(const Type &data)
...{
QueueItem<Type> *qu=new QueueItem<Type>(data);
if( front == end && front == NULL )
...{
front = qu;
end = qu;
}
else
...{
end->setNext(qu);
end = qu;
}
}
int main()
...{
cout<<"hehe ,you are"<<endl;
Queue<int> qu;
qu.add(30);
qu.add(60);
qu.add(90);
qu.add(190);
qu.add(290);
qu.add(390);
qu.add(30);
qu.add(60);
qu.add(90);
qu.add(190);
qu.add(290);
qu.add(390);
while(!qu.isEmpty())
...{
cout<<qu.remove()<<",";
}
cout<<endl;
return 1;
}
相关文章推荐
- STL 简单 queue 的实现
- 关于STL中vector的内存管理与简单代码实现
- 简单模拟STL库中string的实现
- iOS简单优雅的实现复杂情况下的串行需求(各种锁、GCD 、NSOperationQueue...)
- STL,迭代器的C++简单实现
- 使用WeakReference 与 ReferenceQueue 简单实现弱引用缓存
- STL 简单 <stl_algorithms.h> 算法的实现
- STL之priority_queue实现
- 【STL】SGI版STL空间配置器剖析+简单实现
- STL:map和BOOST:unordered_map 实现简单比较
- STL中空间配置器(allocator)的简单实现
- 先简单总结下简单常用的STL底层的实现,后期会挨个给大家解释
- STL中vector的内存管理与简单代码实现
- lower_bound upper_bound的简单实现(STL)
- (STL) list的简单用法和实现
- STL中(queue)用法简单运用
- STL中list的简单实现
- C++STL库list容器简单实现
- 关于STL中vector的内存管理与简单代码实现