队列(c++源码)

queue.h

#ifndef QUEUE_H_
#define QUEUE_H_
#include<iostream>
template<class T>
struct Node
{
 T data;
 Node<T>* next;
};
template<class T>
class Queue
{
private:
 Node<T>* front;
 Node<T>* rear;
public:
 Queue();
 ~Queue();
 void EnQueue(T x);
 void Delete();
 bool Empty();
 T GetFront();
 void Print();
};
template<class T>
Queue<T>::Queue()
{
 front = rear = new Node<T>;
 front->next = nullptr;
}
template<class T>
Queue<T>::~Queue()
{
 while (front)
 {
  rear=front->next;
  delete front;
  front = rear;
 }
 delete rear;
}
template<class T>
void Queue<T>::EnQueue(T x)
{
 Node<T>* p = new Node<T>;
 p->data = x;
 rear->next=p;
 rear = p;
 rear->next = nullptr;
}
template<class T>
void Queue<T>::Delete()
{
 Node<T>* p = front->next;
 front->next = p->next;
 delete p;
}
template<class T>
bool Queue<T>::Empty()
{
 return front == rear ? true : false;
}
template<class T>
T Queue<T>::GetFront()
{
 return front->next->data;
}
template<class T>
void Queue<T>::Print()
{
 Node<T>* p = front->next;
 while (p)
 {
  std::cout << p->data<<" ";
  p = p->next;
 }
 std::cout << std::endl;
}
#endif // !QUEUE_H_

UseQueue.cpp

#include<iostream>
#include"queue.h"
int main()
{
 using std::cout;
 using std::endl;
 Queue<int> p;
 for (int i = 1; i <= 10; i++)
  p.EnQueue(i);
 if (p.Empty())
 {
  cout << "Empty\n";
 }
 else
 {
  p.Print();
  cout<<p.GetFront()<<endl;
  p.Delete();
  p.Print();
 }
 return 0;
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m晴朗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值