- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构循环队列操作源代码
数据结构循环队列操作
头文件:
//循环队列类的定义
template class T
class CirQueue
{
private:
T *base;// 存储空间基址
int front;// 队头指针
int rear;// 队尾指针
int queuesize;// 队容量
public:
CirQueue(int m);//构造空队列
~CirQueue();// 析构函数,释放链队各结点的存储空间
void EnQueue(T x);// 元素x入队
T DeQueue();// 队顶元素出队
T GetHead();// 取队头元素
T GetLast();//取队尾元素
int QueueEmpty(); // 判队空
int QueueFull();//判队满
void ClearQueue();//清空队
void Pointer();//返回队头、队尾位置
void QueueTranverse();//遍历队,输出队列元素
};
//循环队列类的实现
template class T
CirQueueT::CirQueue(int m)//构造函数
{//创建一空队
base=new T[m];
if(base==NULL)
{
cout队创建失败,退出!endl;
exit(1);
}
front=rear=0;
queuesize=m;
}
template class T
CirQueueT::~CirQueue()//析构函数
{//释放队列所占存储空间
delete [] base;
rear=0;
front=0;
queuesize=0;
}
template class T
void CirQueueT::EnQueue(T x)
{//元素入队
if((rear+1)%queuesize==front) throw 上溢,无法入队;
base[rear]=x;
rear=(rear+1)%queuesize;
}
template class T
T CirQueueT::DeQueue()
{
T x;
if(front==rear) throw 下溢,不能出队;
x=base[front];
front=(front+1)%queuesize;
return x;
}
template class T
T CirQueueT::GetHead()
{
T x;
if(front==rear) throw 队空,队顶无元素;
x=base[front];
return x;
}
template class T
T CirQueueT::GetLast()
{
T x;
if(front==rear) throw 队空,队顶无元素;
x=base[rear-1];
return x;
}
template class T
int CirQueueT::QueueEmpty()
{
if(front==rear)
return 1;
else
return 0;
}
template class T
int CirQueueT::QueueFull()
{
if((rear+1)%queuesize==front)
return 1;
else
return 0;
}
template class T
void CirQueueT::ClearQueue()
{
front=rear=0;
}
template class T
void CirQueueT::Pointer()
{
cout队头front= frontendl;
cout队尾 rear= rearendl;
}
template class T
void CirQueueT::QueueTranverse()
{
int i=front;
while(i!=rear)
{
coutbase[i]\t;
i=(i+1)%queuesize;
}
coutendl;
}
主程序:
#includeiostream.h//cout,cin
#includeprocess.h//exit()
#includestdio.h//EOF,NULL
#include iostream.h
#include CirQueue.h
char pause;
//主函数
int main()
{
int e;
CirQueueint q(10);
system(cls);//执行系统命令cls,清屏
int choice;
您可能关注的文档
- 实验八-队列(循环队列)的表示和实现-舞伴问题.doc
- 高三英语专题训练4.doc
- Drools的进一步研究.doc
- windows 下C++操作Mysql的一些总结.doc
- WebQuest网络课堂设计.doc
- dbcp优化配置说明.doc
- 英语专业大四精度第4单元单词.doc
- 循环队列的操作和实现C语言.docx
- 北京版 4年级 Unit 6 May I take your order? Lesson 20.doc
- 链队的基本操作.doc
- GB/T 39560.10-2024电子电气产品中某些物质的测定 第10部分:气相色谱-质谱法(GC-MS)测定聚合物和电子件中的多环芳烃(PAHs).pdf
- 中国国家标准 GB/T 39560.10-2024电子电气产品中某些物质的测定 第10部分:气相色谱-质谱法(GC-MS)测定聚合物和电子件中的多环芳烃(PAHs).pdf
- 《GB/T 39560.10-2024电子电气产品中某些物质的测定 第10部分:气相色谱-质谱法(GC-MS)测定聚合物和电子件中的多环芳烃(PAHs)》.pdf
- GB/T 39560.302-2024电子电气产品中某些物质的测定 第3-2部分:燃烧-离子色谱法(C-IC)筛选聚合物和电子件中的氟、氯和溴.pdf
- 中国国家标准 GB/T 39560.2-2024电子电气产品中某些物质的测定 第2部分:拆解、拆分和机械制样.pdf
- 中国国家标准 GB/T 39560.302-2024电子电气产品中某些物质的测定 第3-2部分:燃烧-离子色谱法(C-IC)筛选聚合物和电子件中的氟、氯和溴.pdf
- GB/T 39560.2-2024电子电气产品中某些物质的测定 第2部分:拆解、拆分和机械制样.pdf
- 《GB/T 39560.2-2024电子电气产品中某些物质的测定 第2部分:拆解、拆分和机械制样》.pdf
- 《GB/T 39560.303-2024电子电气产品中某些物质的测定 第3-3部分:配有热裂解/热脱附的气相色谱-质谱法(Py/TD-GC-MS)筛选聚合物中的多溴联苯、多溴二苯醚和邻苯二甲酸酯》.pdf
- 中国国家标准 GB/T 39560.303-2024电子电气产品中某些物质的测定 第3-3部分:配有热裂解/热脱附的气相色谱-质谱法(Py/TD-GC-MS)筛选聚合物中的多溴联苯、多溴二苯醚和邻苯二甲酸酯.pdf
文档评论(0)