【数据结构】队列基本操作

描述

输入若干个整数(小于50个),整数共有四种类型,不同类型的整数代表不同操作。说明如下:

1、[10,99]之间的整数:将该整数入队。

2、-1: 队首整数出队。

3、-2: 显示队列所有整数。

4、-3: 输入结束。

说明:采用链队列实现,必须有队列初始化函数、入队函数、出队函数。

输入

第一行若干整数(必须满足上述四种类型要求),以-3结束。

输出

输出队列中所有整数。

#include <iostream>
using namespace std;
template<class T>
struct Node
{
    T data;
    Node <T> *next;
};
template <class T>
class LinkQueue
{
public:
    LinkQueue();
    void EnQueue(T x);
    T DeQueue();
    T GetQueue();
    bool Empty();
    void show();
private:
    Node<T> *front, *rear;
};
template <class T>
LinkQueue<T>::LinkQueue()
{
    front=new Node<T>;
    front->next=NULL;
    rear=front;
}
template <class T>
void LinkQueue<T>::EnQueue(T x)
{
    Node<T> *s;
    s=new Node<T>;
    s->data=x;
    s->next=NULL;
    rear->next=s;
    rear=s;
}
template <class T>
T LinkQueue<T>::DeQueue( )
{
    Node<T> *p;
    T x;
    if (rear==front) throw "下溢";
    p=front->next;
    x=p->data;
    front->next=p->next;
    delete p;
    if (front->next==NULL) rear=front;
    return x;
}
template <class T>
void LinkQueue <T>::show()
{
    Node <T> *p;
    p=front->next;
    while(p)
    {
        cout<<p->data<<" ";
        p=p->next;
    }
    cout<<endl;
}
int main()
{
    int x;
    LinkQueue<int> ob;
    while(cin>>x)
    {
        if(x==-1) ob.DeQueue();
        if(x==-3) break;
        if(x>0) ob.EnQueue(x);
        if(x==-2) ob.show();
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值