DynamicArray.h
上传用户:chen_dj
上传日期:2013-04-22
资源大小:111k
文件大小:2k
源码类别:

多国语言处理

开发平台:

C/C++

  1. /****************************************************************************
  2.  *
  3.  * Copyright (c) 2000, 2001 
  4.  *     Software Research Lab.
  5.  *     Institute of Computing Tech.
  6.  *     Chinese Academy of Sciences
  7.  *     All rights reserved.
  8.  *
  9.  * This file is the confidential and proprietary property of 
  10.  * Institute of Computing Tech. and the posession or use of this file requires 
  11.  * a written license from the author.
  12.  *
  13.  * Abstract:
  14.  *           Dynamic array, and the array is generally great and sparse.
  15.  *           Dynamic Array Definition 
  16.  * Author: Kevin Chang (zhanghp@software.ict.ac.cn)
  17.  *
  18.  * Notes:
  19.  *                
  20.  * 
  21.  ****************************************************************************/
  22. // DynamicArray.h: interface for the CDynamicArray class.
  23. //
  24. //////////////////////////////////////////////////////////////////////
  25. #if !defined(AFX_DYNAMICARRAY_H__C47E8C64_17A2_467F_8094_1DFDCC39A943__INCLUDED_)
  26. #define AFX_DYNAMICARRAY_H__C47E8C64_17A2_467F_8094_1DFDCC39A943__INCLUDED_
  27. #if _MSC_VER > 1000
  28. #pragma once
  29. #endif // _MSC_VER > 1000
  30. #define MIN_PROBLEM 1
  31. #if MIN_PROBLEM==1//The shortest path
  32. #define INFINITE_VALUE 10000.00//infinite value
  33. #else//The longest path
  34. #define INFINITE_VALUE 0.00//infinite value
  35. #endif
  36. #define ELEMENT_TYPE double//the type of element
  37. #define ROW_FIRST 0//Row first in the array store
  38. struct tagArrayChain{
  39. unsigned int col,row;//row and column
  40.     ELEMENT_TYPE value;//The value of the array
  41. int nPOS;
  42. int nWordLen;
  43. char *sWord;
  44. //The possible POS of the word related to the segmentation graph
  45.     struct tagArrayChain *next;
  46. };
  47. typedef struct tagArrayChain ARRAY_CHAIN,*PARRAY_CHAIN;
  48. class CDynamicArray  
  49. {
  50. public:
  51. bool GetElement(int nRow, int nCol,ELEMENT_TYPE  *pRetValue,int *pRetPOS=0,char *sRetWord=0);
  52. void SetEmpty();
  53. CDynamicArray();
  54. virtual ~CDynamicArray();
  55. const CDynamicArray & operator =(const CDynamicArray &);
  56. bool operator ==(const CDynamicArray &array);
  57. ELEMENT_TYPE GetElement( int nRow, int nCol,PARRAY_CHAIN pStart=0,PARRAY_CHAIN *pRet=0);
  58. int SetElement(unsigned int nRow, unsigned int nCol, ELEMENT_TYPE fValue,int nPOS,char *sWord=0);
  59. unsigned int m_nCol,m_nRow;//The row and col of the array
  60. private:
  61.     PARRAY_CHAIN m_pHead;//The head pointer of array chain
  62. };
  63. #endif // !defined(AFX_DYNAMICARRAY_H__C47E8C64_17A2_467F_8094_1DFDCC39A943__INCLUDED_)