• C++STL中的list链表


    #ifndef PRACTICE1_H_INCLUDED
    #define PRACTICE1_H_INCLUDED
    #include<iostream>
    
    template <class T>
    class Queue{
    public:
        Queue();//构造函数
        ~Queue();//析构函数
        bool isEmpty() const;//判断是否为空
        const T& getFront() const;//得到队首数据不删除
        void enqueue(const T& x);//进队列
        T dequeue();//删除队首数据 且得到队首数据
        void makeEmpty();//清空队列
    
    private:
    
        struct ListNode//结构体嵌套 也可以用友元类
        {
            T element;//数据域
            ListNode *next;//指针域
            ListNode(const T & theElement,ListNode *n=0)//构造函数
            :element(theElement),next(n) {}
    
        };
        ListNode *front;//对头指针
        ListNode *back;//队尾指针
    };
    template<class T>
    Queue<T>::Queue()
    {
        front=0;
        back=0;
    }
    template<class T>
    Queue<T>::~Queue()
    {
       makeEmpty();
    
    }
    template<class T>
    void Queue<T>::makeEmpty()
    {
      while(!isEmpty())
    
        dequeue();
    
    }
    template<class T>
    bool Queue<T>::isEmpty()const
    {
    
        return front==0;
    }
    template <class T>
    const T& Queue<T>::getFront() const
    {
    
        if(isEmpty())
        {
            throw "queue is empty";
        }
        return  front->element;
    }
    
    template<class T>
    void Queue<T> ::enqueue(const T & x)
    {
    
        if(isEmpty())
            back=front=new ListNode(x);
        else
            back=back->next=new ListNode(x);
    
    }
    
    template<class T>
    T  Queue<T>::dequeue()
    {
    
        T frontItem=getFront();
        ListNode *old=front;
        front=front->next;
        delete old;
        std::cout<<frontItem<<std::endl;
    }
    #endif // PRACTICE1_H_INCLUDED
  • 相关阅读:
    innodb文件
    Innodb 存储引擎
    第二章 flex输入输出结构
    第二章 flex输入输出
    第二章 flex处理二义性
    第一章 flex单词计数程序
    Compile SQLite3 from individual files
    标 题: [心得]传统IT转互联网面试经验分享
    【设计模式】二:策略模式
    python 爬虫第三例--爬美女图片
  • 原文地址:https://www.cnblogs.com/libin123/p/10420141.html
Copyright © 2020-2023  润新知