单链表实现队列

来源:互联网 发布:新东方少儿英语软件 编辑:程序博客网 时间:2024/05/06 22:56
//单链表实现队列#include<new>#include<iostream>template <typename T> struct Node{    T data;    Node * next;}; template <typename T> class Queue{    public:        typedef Node<T> * PtrToQueue;    private:        PtrToQueue first;        PtrToQueue last;    public:        bool IsEmpty()        {            return first->next == NULL;        }        void MakeEmpty()        {            if( !IsEmpty() )                while( !IsEmpty() )                    Dequeue();        }        void Enqueue( T x )        {            PtrToQueue tmp;            tmp = new Node<T>;            tmp->data = x;            tmp->next = NULL;            last->next = tmp;            last = tmp;        }        T Front()        {            return first->next->data;        }        void Dequeue()        {            PtrToQueue tmp;            tmp = first;            first = first->next;            delete tmp;         }        T FrontAndDequeue()        {            T d = Front();            Dequeue();            return d;        }        int length()        {            int i;            Node<T> * p = first;            for(i=0;p!=last;i++,p=p->next);            return i;        }        Queue(  )        {            first = new Node<T>;            first->data = 0;            first->next = NULL;            last = first;        }        ~Queue()        {            MakeEmpty();            delete first;        }};
0 0
原创粉丝点击