Queue.h
上传用户:chen_dj
上传日期:2013-04-22
资源大小:111k
文件大小:2k
- /****************************************************************************
- *
- * Copyright (c) 2000, 2001
- * Software Research Lab.
- * Institute of Computing Tech.
- * Chinese Academy of Sciences
- * All rights reserved.
- *
- * This file is the confidential and proprietary property of
- * Institute of Computing Tech. and the posession or use of this file requires
- * a written license from the author.
- *
- * Abstract:
- * Queue
- * Author: Kevin Chang (zhanghp@software.ict.ac.cn)
- *
- * Notes:
- *
- *
- ****************************************************************************/
- // Queue.h: interface for the CQueue class.
- //
- //////////////////////////////////////////////////////////////////////
- #if !defined(AFX_QUEUE_H__382C7319_66D8_4041_ABA2_EE25B9D15D9C__INCLUDED_)
- #define AFX_QUEUE_H__382C7319_66D8_4041_ABA2_EE25B9D15D9C__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- #include "DynamicArray.h"
- struct tagQueueElem{
- unsigned int nParent;//the weight
- unsigned int nIndex;//number of index in the parent node
- ELEMENT_TYPE eWeight;//the weight of last path
- struct tagQueueElem *next;
- };
- typedef struct tagQueueElem QUEUE_ELEMENT,*PQUEUE_ELEMENT;
- class CQueue
- {
- public:
- bool IsSingle();
- bool IsEmpty(bool bBrowsed=false);
- int Push(unsigned int nValue=0,//The value for parent node
- unsigned int nIndex=0,//number of index in the parent node
- ELEMENT_TYPE eWeight=0//the weight of last path
- );
- int Pop( unsigned int *npValue,//The value for node
- unsigned int *npIndex,//number of index in the parent node
- ELEMENT_TYPE *epWeight=0,//the weight of last path
- bool bModify=true,//false: not modify the data
- bool bFirstGet=true//first get data,just for browse
- );
-
- CQueue();
- virtual ~CQueue();
- private:
- PQUEUE_ELEMENT m_pHead;//The chain sort according the weight of shortest path
- PQUEUE_ELEMENT m_pLastAccess;//The node last accessed
- };
- #endif // !defined(AFX_QUEUE_H__382C7319_66D8_4041_ABA2_EE25B9D15D9C__INCLUDED_)