// ReachableArray.h: interface for the ReachableArray class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_REACHABLEARRAY_H__F36DE462_4E72_430B_B03D_88025567EEE8__INCLUDED_)
#define AFX_REACHABLEARRAY_H__F36DE462_4E72_430B_B03D_88025567EEE8__INCLUDED_

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

//可达矩阵
class ReachableArray  
{
public:
	int GetEdge( int col ,int row );//获得col->row边
	bool IsBridge( int row , int col );//判断col -> row 是否是桥
	int GetHead();//获头
	int GetTail();//获尾
	void PrepareForCal();//准备计算
	void Cal();//计算
	int Reachable( int col ,int row );//col->row是否可达
	void SetEdge( int col ,int row );//设置col->row
	void Init( int dim );//初始化
	ReachableArray();
	virtual ~ReachableArray();
private:
	int Multiply( int row ,int col );
	int *m_pData;
	int *m_pRlt;
	int *m_pMid;
	int m_Dim;
};

#endif // !defined(AFX_REACHABLEARRAY_H__F36DE462_4E72_430B_B03D_88025567EEE8__INCLUDED_)
