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

📄 lqueue.h

📁 这是一个蚁群算法的蚂蚁聚类的程序
💻 H
字号:
// LQueue.h: interface for the LQueue class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_LQUEUE_H__5974EC62_97DC_4B1A_99ED_F71A370EB999__INCLUDED_)
#define AFX_LQUEUE_H__5974EC62_97DC_4B1A_99ED_F71A370EB999__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "link.h"

template <class Elem> class LQueue
{
public:
    CLink<Elem>* front;     // Pointer to front queue node
    CLink<Elem>* rear;      // Pointer to rear queue node

	int size;              // Number of elements in queue

public:
	LQueue(void){
		front=NULL;
		rear=NULL;
		size=0;
	}
	
	~LQueue(void){
		clear();
	}
   
	
	void clear()
	{         // Clear queue
		while(front != NULL)
		{ // Delete each link node
			rear = front;
			front = front->next;
			delete rear;
		}
		rear = NULL;
		size = 0;
	}
   
	bool enqueue(const Elem& it)
	{
		// Append new node
		if (rear == NULL)   // Empty queue
			front = rear = new CLink<Elem>(it, NULL);
		else {              // Append new node
			rear->next = new CLink<Elem>(it, NULL);
			rear = rear->next;
		}
		 size++;
    return true;
	}
	
	
	bool dequeue(Elem& it) 
	{ // Remove Elem from front
		if (size == 0) return false;    // Empty
		it = front->element;            // Store dequeued value
		CLink<Elem>* ltemp = front;      // Hold dequeued link
		front = front->next;            // Advance front
		delete ltemp;                   // Delete link
		if (front == NULL) rear = NULL; // Dequeued last element
		size --;
		return true;                    // Return element value
	}

	
	bool frontValue(Elem& it) const
			{
		if (size == 0) return false;
		it = front->element;
		return true;
	}
	
	
	
	int length() const{ return size; }


	bool is_outqueue(Elem& it)
{	
		CLink<Elem> *temp;
	    temp=front;
	
	if (front==rear==NULL)
		return false;
	else 
	{
		while(temp)
		{
			if(it==temp->element )	return false;
			temp=temp->next;
		}
		return true;
	}
}



};

#endif // !defined(AFX_LQUEUE_H__5974EC62_97DC_4B1A_99ED_F71A370EB999__INCLUDED_)

⌨️ 快捷键说明

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