实现循环队列的基本操作
来源:互联网 发布:免费服装店收银软件 编辑:程序博客网 时间:2024/05/29 03:58
template<typename T>class Queue{public:Queue(size_t capacity = 5):_front(0),_rear(0),_capacity(capacity+3)//加一个常数防止传参为0程序奔溃,_count(0){_pData = new T[_capacity];//开辟空间}void Push(const T& x){if(_count != _capacity)//如果队列不满{_pData[_rear] = x;_count++;//插入后队列中元素个数加一_rear = (_rear+1)%_capacity;//因为是循环队列所以得模它的容量}}void Pop(){if(!Empty())//队列不空{_count--;_front = (_front+1)%_capacity;}}T& Front(){return _pData[_front];}const T& Front()const{return _pData[_front];}T& Back(){return _pData[(_rear-1)%_capacity];//模容量防止_rear减完变成负数}const T& Back()const{return _pData[(_rear-1)%_capacity];}size_t Size(){return _count;}bool Empty()const{return 0 == _count;}private:T* _pData;size_t _front;size_t _rear;size_t _capacity;size_t _count;};int main(){Queue<int> q;q.Push(1);q.Push(2);q.Push(3);q.Push(4);cout<<q.Front()<<endl;cout<<q.Back()<<endl;q.Pop();q.Pop();cout<<q.Front()<<endl;cout<<q.Size()<<endl;cout<<q.Back()<<endl;q.Pop();q.Pop();cout<<q.Empty()<<endl;cout<<q.Size()<<endl;system("pause");return 0;}
程序运行截图
0 0
- 循环队列的基本操作实现
- 实现循环队列的基本操作
- 数据结构-循环队列的基本实现操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 循环队列的基本操作
- 队列及循环队列的基本操作
- maven JUnit测试 注意JUnit,spring,mybatis版本号
- 新建基于寄存器版本的工程模板
- Windows 下使用 Vagrant 构建 Linux 开发环境,实测可用
- 在centos6.*下安装PostgreSQL
- JSON.parse()和JSON.stringify()
- 实现循环队列的基本操作
- 正则表达式匹配
- jQuery的遍历函数,.each(function(j,k)){}
- 从零开始学 Java
- 向拖延宣战,把事情做好
- Url
- Android之屏幕切换使用技巧
- java Servlet操作多个mysql数据库
- 【译】从输入URL到页面渲染完成