队列的链式存储结构 链队列(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;
}
相关文章
|
28天前
|
设计模式 存储 C++
C++:Stack和Queue的模拟实现
C++:Stack和Queue的模拟实现
|
1月前
|
存储 算法 C++
C++初阶--queue和stack
C++初阶--queue和stack
C4.
|
1月前
|
算法 程序员 C++
C++标准头文件结构
C++标准头文件结构
C4.
24 0
|
25天前
|
C++ 容器
【C++练级之路】【Lv.9】【STL】stack类和queue类的模拟实现
【C++练级之路】【Lv.9】【STL】stack类和queue类的模拟实现
|
26天前
|
存储 算法 C语言
【C/C++ 链表结构】探索链表迭代器:C++实现的深入分析与优化策略
【C/C++ 链表结构】探索链表迭代器:C++实现的深入分析与优化策略
36 0
|
27天前
|
存储 算法 C++
【C++ map结构 】std::map 和 std::unordered_map 在使用上的差异
【C++ map结构 】std::map 和 std::unordered_map 在使用上的差异
20 0
|
1月前
|
存储 算法 C++
【C++ 包装器类 map】C++ 标准库(std)中的map结构 哈希表(unordered_map)和黑红树(map)教程
【C++ 包装器类 map】C++ 标准库(std)中的map结构 哈希表(unordered_map)和黑红树(map)教程
80 1
|
1月前
|
C++
C++控制结构
C++控制结构
|
1月前
|
存储 安全 Linux
C++文件格式深度解析:从底层结构到关键特性
C++文件格式深度解析:从底层结构到关键特性
247 3
C++文件格式深度解析:从底层结构到关键特性
|
1月前
|
安全 算法 调度
C++队列探秘:队列容器的使用技巧与实战案例解析
C++队列探秘:队列容器的使用技巧与实战案例解析
126 0