队列的链式存储结构 链队列(Linked Queue) C++

简介: 队列的链式存储结构 链队列(Linked Queue) C++

LinkedQueue.h

#ifndef __LINKEDQUEUE_H__
#define __LINKEDQUEUE_H__
template <class T>
class Node
{
public:
  T data;
  Node * next;
};
template <class T>
class LinkedQueue
{
public:
  LinkedQueue();
  ~LinkedQueue();
public:
  void enQueue(T _data);
  T deQueue();
  T getQueue();
  bool Empty();
private:
  Node<T> *front, *rear;
};
#endif


LinkedQueue.cpp

#include "LinkedQueue.h"
template <class T>
LinkedQueue<T>::LinkedQueue()
{
  Node<T> * tempNode = new Node<T>;
  tempNode->next = nullptr;
  front = tempNode;
  rear = tempNode;
}
template <class T>
LinkedQueue<T>::~LinkedQueue()
{
}
template <class T>
void LinkedQueue<T>::enQueue(T _data)
{
  Node<T> *newNode = new Node<T>;
  newNode->data = _data;
  newNode->next = nullptr;
  rear->next = newNode;
  rear = newNode;
}
template <class T>
T LinkedQueue<T>::deQueue()
{
  if (Empty())
  return false;
  T data;
  Node<T> *delNode = new Node<T>;
  for (delNode = front; 
  delNode->next != rear; 
  delNode = delNode->next);
  rear = delNode;
  data = delNode->next->data;
  delete delNode->next;
  return data;
}
template <class T>
T LinkedQueue<T>::getQueue()
{
  if (Empty())
  return false;
  Node<T> *getNode = new Node<T>;
  for (getNode = front;
  getNode->next != rear;
  getNode = getNode->next);
  return getNode->next->data;
}
template <class T>
bool LinkedQueue<T>::Empty()
{
  if (front == rear)
  return true;
  return false;
}


queue.cpp

#include <iostream>
#include "LinkedQueue.h"
#include "LinkedQueue.cpp"
using namespace std;
int main()
{
  LinkedQueue<int> * linQue = new LinkedQueue<int>;
  linQue->enQueue(1);
  linQue->enQueue(2);
  linQue->enQueue(3);
  cout << linQue->deQueue() << endl;
  cout << linQue->getQueue() << endl;
  return 0;
}
相关文章
|
15天前
|
缓存 安全 C++
C++无锁队列:解锁多线程编程新境界
【10月更文挑战第27天】
30 7
|
15天前
|
消息中间件 存储 安全
|
30天前
|
存储 算法 调度
【C++打怪之路Lv11】-- stack、queue和优先级队列
【C++打怪之路Lv11】-- stack、queue和优先级队列
32 1
|
1月前
|
设计模式 存储 C++
C++之stack 和 queue(下)
C++之stack 和 queue(下)
33 1
|
1月前
|
存储 算法 C语言
【C++】C++ STL探索:Priority Queue与仿函数的深入解析(一)
【C++】C++ STL探索:Priority Queue与仿函数的深入解析
|
2月前
|
C++
【C++基础】程序流程结构详解
这篇文章详细介绍了C++中程序流程的三种基本结构:顺序结构、选择结构和循环结构,包括if语句、三目运算符、switch语句、while循环、do…while循环、for循环以及跳转语句break、continue和goto的使用和示例。
45 2
|
1月前
|
C++ 容器
C++之stack 和 queue(上)
C++之stack 和 queue(上)
55 0
|
1月前
|
存储 C++ 容器
C++番外篇——stack、queue的实现及deque的介绍
C++番外篇——stack、queue的实现及deque的介绍
25 0
|
1月前
|
存储 算法 C++
C++入门10——stack与queue的使用
C++入门10——stack与queue的使用
40 0
|
1月前
|
C++
【C++】C++ STL探索:Priority Queue与仿函数的深入解析(三)
【C++】C++ STL探索:Priority Queue与仿函数的深入解析