⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linqueue.h

📁 数据结构头文件源代码
💻 H
字号:
template<class T> class LinQueue;

template<class T>
class QueueNode
{
	friend class LinQueue<T>;
	private:
	QueueNode<T> *next;
	public:
		T data;

		QueueNode(const T &item,QueueNode<T> *ptrNext)
		{
			data=item;
			next=ptrNext;
		}
		~QueueNode(){};
};

template<class T>
class LinQueue
{
	private:
		QueueNode<T> *front;
		int size;
		QueueNode<T> *rear;
    public:
		LinQueue(void)
		{
			front=rear=NULL;
			size=0;
		};
		~LinQueue(void)
		{
			ClearQueue();
			front=rear=NULL;
		};
		int QueueSize(void)const
		{return size;};
		int EmptyQueue(void)const  
		{
			return size<=0;
		};
		void QInsert(const T&item);
/*		{
        	QueueNode<T> *newNode=new QueueNode<T>(item,NULL);
	        if(rear!=NULL)rear->next=newNode;
        	rear=newNode;
         	if(front==0)
            front=newNode;
		    size++;
		};	*/
       T QDelete(void);
/*		{
   	      if(size==0)
			  {
           		cout<<"队列为空无元素可删!"<<endl;
           		exit(0);
			  }
           	QueueNode<T> *p=front->next;
           	T data=front->data;
            	delete front;
            	front=p;
            	size--;
           	return data;
		};*/
		T QFront(void)const;
//		{
//	        return front->data;
//		};
    	void ClearQueue(void);
/*		{
    	   QueueNode<T> *p,*pl;
       	p=front;
        	while(p!=NULL)
			{
       		pl=p;
           	p=p->next;
       		delete pl;
			}
         	size=0;
		};*/
};

template<class T>
void LinQueue<T>::QInsert(const T &item)
{
	QueueNode<T> *newNode=new QueueNode<T>(item,NULL);
	if(rear!=NULL)rear->next=newNode;
	rear=newNode;
	if(front==0)front=newNode;

	size++;
}
template <class T>
T LinQueue<T>::QDelete(void)
{
	if(size==0)
	{
		cout<<"队列为空无元素可删!"<<endl;
		exit(0);
	}
	QueueNode<T> *p=front->next;
	T data=front->data;
	delete front;
	front=p;
	size--;
	return data;
}

template <class T>
T LinQueue<T>::QFront(void)const
{
	return front->data;
}

template <class T>
void LinQueue<T>::ClearQueue(void)
{
	QueueNode<T> *p,*pl;
	p=front;
	while(p!=NULL)
	{
		pl=p;
		p=p->next;
		delete pl;
	}
	size=0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -