⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.h

📁 邻接矩阵的最短距离
💻 H
字号:
#include <assert.h>#define null 0#include <iostream.h>template <class Type> class Queue;template <class Type> class QueueNode{  friend class Queue<Type>;  friend ostream& operator <<(ostream& strm, Queue<Type>& a);  private:    Type data;    QueueNode<Type> * link;    QueueNode(Type d=0,QueueNode *l=null):data(d),link(l){}  };template <class Type> class Queue{  public:    Queue():rear(null),front(null){}    ~Queue();    void EnQueue(const Type & item);    Type DeQueue();    Type GetFront();    void MakeEmpty(){front=rear=null;}    int  IsEmpty() const {return front==null;}    friend ostream& operator <<(ostream& strm, Queue<Type>& a);  private:    QueueNode<Type> *front,*rear;  };  template <class Type> Queue<Type>::~Queue(){    QueueNode<Type> * p=front;    while(front!=null){      p=front;      front=front->link;      delete p;      }    };  template <class Type> void Queue<Type>::EnQueue(const Type & item){    if(front==null) front=rear=new QueueNode<Type>(item,null);      else rear=rear->link=new QueueNode<Type>(item,null);    }  template <class Type> Type Queue<Type>::DeQueue(){    assert(!IsEmpty());    QueueNode<Type> * p=front;    Type retvalue=p->data;    front=front->link;    delete p;    return retvalue;    }  template <class Type> Type Queue<Type>::GetFront(){    assert(!IsEmpty());    return front->data;    }template <class Type>ostream& operator <<(ostream& strm, Queue<Type>& a){  QueueNode<Type>* p=a.front;  if (a.front!=NULL)  {    while (p!=a.rear)    {      strm<<p->data<<" ";      p=p->link;    }    strm<<p->data;  }  strm<<endl;   return strm;}

⌨️ 快捷键说明

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