Queue.h
上传用户:sunyong76
上传日期:2021-10-03
资源大小:2236k
文件大小:3k
源码类别:

多国语言处理

开发平台:

Java

  1. //////////////////////////////////////////////////////////////////////
  2. //ICTCLAS简介:计算所汉语词法分析系统ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System),
  3. //             功能有:中文分词;词性标注;未登录词识别。
  4. //             分词正确率高达97.58%(973专家评测结果),
  5. //             未登录词识别召回率均高于90%,其中中国人名的识别召回率接近98%;
  6. //             处理速度为31.5Kbytes/s。
  7. //著作权:  Copyright?2002-2005中科院计算所 职务著作权人:张华平 刘群
  8. //遵循协议:自然语言处理开放资源许可证1.0
  9. //Email: zhanghp@software.ict.ac.cn
  10. //Homepage:www.nlp.org.cn;mtgroup.ict.ac.cn
  11. /****************************************************************************
  12.  *
  13.  * Copyright (c) 2000, 2001 
  14.  *     Software Research Lab.
  15.  *     Institute of Computing Tech.
  16.  *     Chinese Academy of Sciences
  17.  *     All rights reserved.
  18.  *
  19.  * This file is the confidential and proprietary property of 
  20.  * Institute of Computing Tech. and the posession or use of this file requires 
  21.  * a written license from the author.
  22.  *
  23.  * Abstract:
  24.  *           Queue 
  25.  * Author: Kevin Chang (zhanghp@software.ict.ac.cn)
  26.  *
  27.  * Notes:
  28.  *                
  29.  * 
  30.  ****************************************************************************/
  31. // Queue.h: interface for the CQueue class.
  32. //
  33. //////////////////////////////////////////////////////////////////////
  34. #if !defined(AFX_QUEUE_H__382C7319_66D8_4041_ABA2_EE25B9D15D9C__INCLUDED_)
  35. #define AFX_QUEUE_H__382C7319_66D8_4041_ABA2_EE25B9D15D9C__INCLUDED_
  36. #if _MSC_VER > 1000
  37. #pragma once
  38. #endif // _MSC_VER > 1000
  39. #include "DynamicArray.h"
  40. struct tagQueueElem{
  41.     unsigned int nParent;//the weight
  42. unsigned int nIndex;//number of index in the parent node
  43. ELEMENT_TYPE eWeight;//the weight of last path
  44.     struct tagQueueElem *next;
  45. /*----Added By huangjin@ict.ac.cn 2006-5-30----*/
  46. struct tagQueueElem()
  47. {
  48. nParent=0;
  49. nIndex=0;
  50. eWeight=0;
  51. next=NULL;
  52. }
  53. /*-----------------------------------------------*/
  54. };
  55. typedef struct tagQueueElem QUEUE_ELEMENT,*PQUEUE_ELEMENT;
  56. class CQueue  
  57. {
  58. public:
  59. bool IsSingle();
  60. bool IsEmpty(bool bBrowsed=false);
  61. int Push(unsigned int nValue=0,//The value for parent node
  62.  unsigned int nIndex=0,//number of index in the parent node
  63.              ELEMENT_TYPE eWeight=0//the weight of last path 
  64.  );
  65. int Pop( unsigned int *npValue,//The value for node
  66.  unsigned int *npIndex,//number of index in the parent node
  67.      ELEMENT_TYPE *epWeight=0,//the weight of last path 
  68.  bool  bModify=true,//false: not modify the data
  69.  bool bFirstGet=true//first get data,just for browse 
  70.    );
  71. CQueue();
  72. virtual ~CQueue();
  73. private:
  74. PQUEUE_ELEMENT m_pHead;//The chain sort according the weight of shortest path
  75. PQUEUE_ELEMENT m_pLastAccess;//The node last accessed
  76. };
  77. #endif // !defined(AFX_QUEUE_H__382C7319_66D8_4041_ABA2_EE25B9D15D9C__INCLUDED_)