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;
    }

  • 相关阅读:
    Git—分支管理
    Git—推送代码至Github
    Git入门—创建项目
    Mysql单表查询
    Mysql数据的增删改查
    Mysql完整约束性
    C++继承中同名成员变量处理方法
    C++继承和组合中的构造函数和析构函数调用原则
    C++继承中的类型兼容原则
    C++中的继承
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8683744.html
Copyright © 2011-2022 走看看