llqueue.h

来自「一本全面剖析C++数据结构算法的书籍」· C头文件 代码 · 共 87 行

H
87
字号
// header file llqueue.h#ifndef LinkedQueue_#define LinkedQueue_#include "node.h"template<class type>class LinkedQueue {// FIFO objects   public:      LinkedQueue() {front = rear = 0;}; // constructor      ~LinkedQueue(); // destructor      int IsEmpty()         {return ((front) ? 0 : 1);}      int IsFull();      int First(type& x); // return first element of queue in x      int Last(type& x); // return last element of queue in x      int operator +(type x); // add x to queue      int operator -(type& x); // delete x from queue      // First, + and - return 0 on failure and 1 on success   private:      Node<type> *front, *rear;};template<class type>LinkedQueue<type>::~LinkedQueue(){Node<type> *i;while (front) {i = front->link; delete front; front = i;}}template<class type>int LinkedQueue<type>::IsFull(){Node<type> *i;i = new Node<type>;if (i) {delete i; return 0;};return 1;}template<class type>int LinkedQueue<type>::First(type& x)//set x to first element{if (IsEmpty()) return 0; //First failsx = front->data;return 1;}template<class type>int LinkedQueue<type>::Last(type& x)//set x to last element{if (IsEmpty()) return 0; //Last failsx = rear->data;return 1;}template<class type>int LinkedQueue<type>::operator+(type x)//add x to queue{Node<type> *i;i = new Node<type>;if (i) {     i->data = x; i->link = 0;     if (front) rear->link = i;     else front = i;     rear = i; return 1;        };return 0; // add fails }template<class type>int LinkedQueue<type>::operator-(type& x)//delete first element and return in x{if (IsEmpty()) return 0; //delete failsx = front->data;Node<type> *i = front;front = front->link;delete i;return 1;}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?