欢迎来到天天文库
浏览记录
ID:60369304
大小:66.07 KB
页数:5页
时间:2020-12-05
《循环队列(链表实现).docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/*该程序在vs2010旗舰版下成功编译运行正常*//*循环队列链表实现,自行建立头文件头文件实现main引用三个文件*///头文件#ifndef_CIRCLE_QUEUE_H_#define_CIRCLE_QUEUE_H_templatestructNode{TData;Node*Next;};templateclassCircle_Queue{public:Circle_Queue();voidPush_Queue(Ta);TPOP_Queue();voidPrint_All();~Circ
2、le_Queue();private:Node*End;};#endif//头文件实现#include#include"circle_queue.h"templateCircle_Queue::Circle_Queue(){End=newNode;End->Next=End;}templatevoidCircle_Queue::Push_Queue(Ta)//入队操作{Node*p;p=newNode;p->Data=a;p->Next=End-
3、>Next;1End->Next=p;End=p;}templateTCircle_Queue::POP_Queue(){if(End==End->Next)//判断队列是否为空{throw">>>>>>>QUEUEISNULL!<<<<<<<<<";}Node*p,*Head;Ttemp;Head=End->Next;p=Head->Next;if(p==End)//如果已经到达队尾,则对该队列进行置空队,并返回最后一个值{temp=End->Data;End->Next=End;deleteHead;
4、}else{temp=p->Data;Head->Next=p->Next;deletep;}returntemp;}templatevoidCircle_Queue::Print_All()//显示所有队列元素{if(End==End->Next){throw">>>>>>>QUEUEISNULL!<<<<<<<<<";}Node*Head;Head=End->Next->Next;//第一个节点不是有效节点while(Head!=End->Next){cout<Data<<"";Head
5、=Head->Next;2}}templateCircle_Queue::~Circle_Queue(){if(End!=End->Next){Node*p1,*p2;p1=End->Next;p2=p1;while(p1!=End){p1=p1->Next;deletep2;p2=p1;}deleteEnd;}}//main引用#include#include"circle_queue.cpp"usingnamespacestd;intmain(){intm,n,b,d=0;try{
6、Circle_Queuec1;c1.Push_Queue(1);c1.Push_Queue(2);c1.Push_Queue(3);c1.Print_All();m=c1.POP_Queue();n=c1.POP_Queue();b=c1.POP_Queue();d=c1.POP_Queue();3}catch(constchar*str){cout<
此文档下载收益归作者所有