c++高手进~

来源:百度知道 编辑:UC知道 时间:2024/07/06 20:04:27
假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点而不设头指针,试编写相应的队列初始化、入队列、出队列和判断队列状态的算法。
利用上述算法完成下面的各操作,并在每一操作后输出队列状态。
1)下列元素逐一入队:5,7,3,8,55 状态:5个元素
2) 3个元素出队 状态:2个元素
3)再2个元素出队 状态:队空
4)再1个元素出队 状态:队空(指示下溢)

怎么老发同一题啊

#include <iostream>
using namespace std;

struct node
{
int data;
node *next;
};

class LB
{
private:
node *tail;
public:
LB()
{
node *c=new node;
c->next=c;//代表为空
tail=c;
}

void insert(int n)
{
node *c=new node;
c->data=n;//赋值
c->next=tail->next;
tail->next=c;
tail=c;////原来的尾部指向新的尾部
}

void del()
{
//队礼先进先出,删除第一个结点(非头结点)
node *h=tail->next;
node *t;
if(h==h->next)
cout<<"Error"<<endl;//已经为空
else
{
t= h->next;//第一个元素
h->next=h->next->next;//修改连接
delete t;//删除
if(h==h->next)
tail=h;
}
}

void stats()
{
node *h=tail->next;
int count=0;
if(h==h->next)
cout<<"E