队列的实现
来源:互联网 发布:mac新建文件夹 编辑:程序博客网 时间:2024/06/14 17:04
/****************************************************************************
* 队列的成员数据:队列的长度,队列头,队列尾,队列中元素个数;
* 队列的成员方法:初始化,是否为空,入队,出队,获取对列中元素。
*****************************************************************************/
#include<iostream>//#define MAXSIZE 100using namespace std;//循环队列--数组形式template<class T>class Queue_{private:int Max_Size;int real;int font;T* data;public:Queue_(){Max_Size=100;data=new T[Max_Size];real=font=-1;}~Queue_(){if(data!=NULL){delete []data;cout<<"释放队列!"<<endl;}}bool Empty(){if(real==font){//cout<<"队列为空!"<<endl;return true;}else{//return false;}}bool Full(){if((real-font==Max_Size-1)||(font==real+1)){//return true;}else{//return false;}}int GetSize(){if(!Empty()){return (real-font+Max_Size)%Max_Size;}else{return 0;}}T GetFont(){try{if(Empty())throw 0;return data[font];}catch(int e){if(e==0)cout<<"队列为空!"<<endl;exit(-1);}}bool En_Queue(T m_data){if(Full()){return false;}else{if(real==-1){real=0;font=0;}data[real]=m_data;real=(real+1)%Max_Size;return true;}}bool Out_Queue(){if(Empty()){return false;}else{font=(font+1)%Max_Size;return true;}}};int main(){int a[]={5,3,2,7,9};Queue_<int> m_queue;if(m_queue.Empty())cout<<"队列为空!"<<endl;else cout<<"队列非空!"<<endl;if(m_queue.Full())cout<<"队列已满!"<<endl;else cout<<"队列未满!"<<endl;cout<<endl;m_queue.En_Queue(a[0]); m_queue.En_Queue(a[1]);m_queue.En_Queue(a[2]);m_queue.En_Queue(a[4]);if(m_queue.Empty())cout<<"队列为空!"<<endl;else cout<<"队列非空!"<<endl;if(m_queue.Full())cout<<"队列已满!"<<endl;else cout<<"队列未满!"<<endl;cout<<endl; cout<<"获取队列中元素个数: "<<m_queue.GetSize()<<endl;cout<<endl;cout<<"获取队列中对头元素: "<<m_queue.GetFont()<<endl;cout<<endl;if(m_queue.Out_Queue())cout<<"出队!"<<endl;cout<<endl;if(m_queue.Out_Queue())cout<<"出队!"<<endl;cout<<endl;if(m_queue.Out_Queue())cout<<"出队!"<<endl;cout<<endl;if(m_queue.Out_Queue())cout<<"出队!"<<endl;cout<<endl; cout<<"获取队列中元素个数: "<<m_queue.GetSize()<<endl;cout<<endl;//cout<<"获取队列中对头元素: "<<m_queue.GetFont()<<endl;//cout<<endl;m_queue.En_Queue(9); cout<<"获取队列中元素个数: "<<m_queue.GetSize()<<endl;cout<<endl;cout<<"获取队列中对头元素: "<<m_queue.GetFont()<<endl;cout<<endl;return 0;}
0 0
- 队列的实现:顺序队列
- 队列的实现:链式队列
- 队列----循环队列的实现
- 队列实现 队列的链式结构实现
- 堆栈,队列的实现
- 链队列的实现
- 队列的实现
- 队列的实现
- java 实现的队列
- 工作队列的实现
- 工作队列的实现
- 用链表实现的队列
- 队列的实现
- 队列的实现
- 队列的实现
- 队列的数组实现
- 循环队列的实现
- 数据结构 队列的实现
- 学习技术的重要几步
- 机器学习入门-各种名称
- 从 ArchLinux 的网络配置看 KISS 原则
- 使用jquery实现点击按钮弹出层和点击空白处隐藏层
- 聊天服务器:Ejabberd 安装与离线转发模块的实现
- 队列的实现
- 最长公共子字符串(动态规划)
- Handler、Looper、MessageQueue(一)
- Intellij IDEA 快捷键整理
- 黑马程序员——Java基础---IO
- ExtJS WindowGroup示例
- ado.笔记
- 最小编辑代价(动态规划)
- WPF窗体居中显示