编程:循环队列的入队、出队(要有main函数)

 我来答
匿名用户
2013-10-17
展开全部
#include<iostream>
using namespace std;
template <typename T>
struct Node
{
T data;
struct Node *next;
};
template <typename DATA>
class cycle_queue
{
public:
Node<DATA> *head;//队列头,不保存数据
Node<DATA> *end;//队列尾,不保存数据
unsigned int size;
cycle_queue()
{
head=new Node<DATA>();
end=new Node<DATA>();
size=0;
}
void push_back(DATA d)//入队列
{
Node<DATA> *tmp;
tmp=new Node<DATA>;
tmp->data=d;
if(size==0)
{
head->next=tmp;
end->next=tmp;
tmp->next=tmp;
}
else
{
end->next->next=tmp;
end->next=tmp;
tmp->next=head->next;
}
++size;
}
DATA front()//取队头元素,不负责检查是否为空
{
DATA re;
if(size!=0)
re=head->next->data;
return re;
}
void pop()//队头元素出列,不负责检查是否为空
{

if(size!=0)
{
Node<DATA> *tmp;
tmp=head->next;
head->next=head->next->next;
end->next->next=head->next;
delete tmp;
--size;
}
}
bool empty()//队列判空
{return size==0;}
};
int main()
{
int a[10]={10,9,8,7,6,5,4,3,2,1};
class cycle_queue<int> cq;
short i;
for(i=0;i!=10;++i)
cq.push_back(a[i]);
cout<<"**************"<<endl;
while(!cq.empty())
{
cout<<cq.front()<<" ";
cq.pop();
}
cin>>i;
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式