第七十一课 图的定义与操作

 

 

后面的代码只考虑有向图,因为无向图可以看做一种特殊的有向图。

添加Graph.h文件:

 1 #ifndef GRAPH_H
 2 #define GRAPH_H
 3 
 4 #include "Object.h"
 5 #include "SharedPointer.h"
 6 #include "Array.h"
 7 
 8 namespace DTLib
 9 {
10 
11 template < typename V, typename E >
12 class Graph : public Object
13 {
14 public:
15     virtual V getVertex(int i) = 0;
16     virtual bool getVertex(int i, V& value) = 0;
17     virtual bool setVertex(int i, const V& value) = 0;
18     virtual SharedPointer< Array<int> > getAdjacent(int i) = 0;
19     virtual E getEdge(int i, int j, E& value) = 0;
20     virtual bool setEdge(int i, int j, const E& value) = 0;
21     virtual bool removeEdge(int i, int j) = 0;
22     virtual int vCount() = 0;
23     virtual int eCount() = 0;
24     virtual int OD(int i) = 0;
25     virtual int ID(int i) = 0;
26     virtual int TD(int i)
27     {
28         return ID(i) + OD(i);
29     }
30 };
31 
32 }
33 
34 #endif // GRAPH_H

小结:

猜你喜欢

转载自www.cnblogs.com/wanmeishenghuo/p/9696658.html
今日推荐