zoukankan      html  css  js  c++  java
  • C++ 模板应用 实现一个Queue 队列

    #include<iostream>
    using namespace std;
    template <typename T>
    class Queue
    {
    public:
    	Queue()
    	{
    		Node<T> *node=new Node<T>();
    		node->data=NULL;
    		node->next=NULL;
    		qfront=qrear=node;
    	}
    	template <typename T>
    	struct Node
    	{
    		Node<T> *next;
    		T data;
    	};
    	bool empty() const;
    	void pop();
    	T & front();
    	T & back();
    	void push(const T &);
    	int size() const;
    private:
    	Node<T> *qfront,*qrear;
    };
    template <typename T>
    T &Queue<T>::back()
    {
    	if(!empty())
    		return qrear->data;
    }
    template <typename T>
    T &Queue<T>::front()
    {
    	if(!empty())
    	{
    		Node<T> *p=qfront->next;
    		return p->data;
    	}
    }
    template <typename T>
    bool Queue<T>::empty() const
    {
    	if(qfront==qrear)
    		return true;
    	else
    		return false;
    }
    template <typename T>
    void Queue<T>::pop()
    {
    	if(!empty())
    	{
    		Node<T> *p=qfront->next;
    		qfront->next=p->next;
    		if(p==qrear)
    			qrear=qfront;
    		delete p;
    		p=NULL;
    
    	}
    }
    template<typename T>
    void Queue<T>::push(const T & t)
    {
    	Node<T> *node=new Node<T>;
    	node->data=t;
    	node->next=NULL;
    	qrear->next=node;
    	qrear=node;
    }
    template<typename T>
    int Queue<T>::size() const
    {
    	Node<T> *p=qfront;
    	if(empty())
    		return 0;
    	else
    	{
    		int i=1;
    		while(p->next!=qrear)
    		{
    			p=p->next;
    			i++;
    		}
    		return i;
    	}
    }
    
    int main()
    {
    	Queue<int> q;
    	q.push(1);
    	q.push(2);
    	q.pop();
    	q.pop();
    	q.pop();
    	cout<<q.size()<<endl;
    	getchar();
    	return 0;
    }

  • 相关阅读:
    Monkey界面版测试工具
    手游兼容性测试
    周版本制度
    08 | 事务到底是隔离的还是不隔离的?
    jackson
    localDateTime和Date
    服务器被攻击后数据库密码被破解
    GC收集器
    linux安装nginx,设置代理,负载均衡
    微信(公众,商户,开放)平台的区别
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8683744.html
Copyright © 2011-2022 走看看