• C++ 链队列基本算法实现


    C++ 链队列基本算法实现

    #ifndef LinkQueue_h
    #define LinkQueue_h
    #include <iostream>
    template <class T>
    struct Node{
        T data;
        struct Node <T> * next;
    };
    template <class T>
    class LinkQueue{
    public:
        LinkQueue(){
            front = rear = new Node <T>;
            front -> next = NULL;
        }
        ~LinkQueue();
        void EnQueue(T x);
        T DeQueue();
        int GetLength();
        T GetFront();
        bool Empty(){return front == rear? true : false;}
    private:
        Node<T> * front;
        Node<T> * rear;
    };
    template <class T>
    void LinkQueue<T>::EnQueue(T x){
        rear->next = new Node<T>;
        rear = rear->next;
        rear->data = x;
        rear->next = NULL;
    }
    template<class T>
    T LinkQueue<T>::DeQueue(){
        Node<T> *p = front ->next;
        if(!p)throw "Underflow";
        front->next = p->next;
        T x = p->data;
        delete p;
        if(!(front->next)) rear = front;
        return x;
        
    }
    template <class T>
    T LinkQueue<T>::GetFront(){
        if(!front->next) throw "overflow";
        return front->next->data;
    }
    template <class T>
    LinkQueue<T> :: ~LinkQueue(){  //包括源节点的释放
        while(front){
            rear = front->next;
            delete front;
            front = rear;
        }
    }
    template<class T>
    int LinkQueue<T>::GetLength(){
        Node<T> *p = front->next;
        int j = 0;
        while(p){
            j++;
            p = p->next;
            
        }
        return j;
    }
    #endif /* LinkQueue_h */
  • 相关阅读:
    ADO.NET调用存储过程
    存储过程
    web Servise(服务)
    ADO.NET连接池
    ADO.NET
    常用语法2
    常用语法
    修改pip源为国内网站
    模块
    random模块
  • 原文地址:https://www.cnblogs.com/ycbeginner/p/10006427.html
Copyright © 2020-2023  润新知