digraph.h
上传用户:jtjnyq9001
上传日期:2014-11-21
资源大小:3974k
文件大小:1k
源码类别:

3G开发

开发平台:

Visual C++

  1. //
  2. //  File = digraph.h
  3. //
  4. #ifndef _DIGRAPH_H_
  5. #define _DIGRAPH_H_
  6. #include "deque"
  7. //#include "list"
  8. #include "vector"
  9. typedef void* obj_id_type;
  10. class DirectedGraph
  11. {
  12. public:
  13.   DirectedGraph( void );
  14.   ~DirectedGraph(void);
  15.   int GetNumVerts(void);
  16.   int GetNumEdges(void);
  17.   int AddVertex(obj_id_type vertex_id);
  18.   int AddEdge(  obj_id_type edge_id,
  19.                 int fm_vtx_num,
  20.                 int to_vtx_num);
  21.   int AddEdge(  obj_id_type edge_id,
  22.                 obj_id_type fm_vtx_id,
  23.                 obj_id_type to_vtx_id);
  24.   int GetEdgeNum( obj_id_type edge_id );
  25.   int GetEdgeNum( int fm_vtx_num,
  26.                   int to_vtx_num);
  27.   int GetVertexNum(obj_id_type vtx_id);
  28.   obj_id_type GetEdgeId(int edge_num);
  29.   obj_id_type GetVertexId(int vtx_num);
  30. protected:
  31. //  std::list<std::vector<int>> *Row_List;
  32.   std::deque<std::vector<int>* > *Row_List;
  33.   std::vector<obj_id_type> *Vertex_List;
  34.   std::vector<obj_id_type> *Edge_List;
  35.   int Num_Verts;
  36.   int Num_Edges;
  37. private:
  38.   int Default_Val;
  39.   
  40. };
  41. #endif //_DIGRAPH_H_