| 17 | }; |
| 18 | |
| 19 | class AbstractGraph{ |
| 20 | protected: |
| 21 | int type; |
| 22 | int vexNum = 0; |
| 23 | |
| 24 | public: |
| 25 | enum { UDG = 1, DG = 2 }; |
| 26 | |
| 27 | AbstractGraph(int _type = DG) : type(_type){} |
| 28 | virtual ~AbstractGraph() = 0; |
| 29 | /* Insert */ |
| 30 | virtual void AddVex(MyGraphicsVexItem *gvex) = 0; |
| 31 | virtual void AddVex(VexInfo *info) = 0; |
| 32 | virtual void AddArc(MyGraphicsLineItem *garc, int weight = 1) = 0; |
| 33 | |
| 34 | /* Delete */ |
| 35 | virtual void DelVex(MyGraphicsVexItem *gvex) = 0; |
| 36 | virtual void DelVex(int vexID) = 0; |
| 37 | virtual void DelArc(MyGraphicsLineItem *garc) = 0; |
| 38 | virtual void DelArc(int sVexID, int eVexID) = 0; |
| 39 | |
| 40 | /* Find */ |
| 41 | virtual int GetIdOf(MyGraphicsVexItem *gvex) = 0; |
| 42 | virtual VexInfo* GetInfoOf(int id) = 0; |
| 43 | virtual VexInfo* GetInfoOf(MyGraphicsVexItem *gvex) = 0; |
| 44 | |
| 45 | /* Modify */ |
| 46 | //virtual void SetText(MyGraphicsVexItem *gvex); |
| 47 | virtual void SetWeight(MyGraphicsLineItem *garc, int weight) = 0; |
| 48 | virtual void ConvertType(int _type) = 0; |
| 49 | |
| 50 | /* Other Function */ |
| 51 | virtual void ClearVisit() = 0; |
| 52 | virtual void ResetDistance() = 0; |
| 53 | virtual void DFS(int strtID, bool generateForest = false) = 0; |
| 54 | virtual void DFS(MyGraphicsVexItem *strtVex, bool generateForest = false) = 0; |
| 55 | virtual void BFS(int strtID, bool generateForest = false) = 0; |
| 56 | virtual void BFS(MyGraphicsVexItem *strtVex, bool generateForest = false) = 0; |
| 57 | virtual void Dijkstra(int strtID) = 0; |
| 58 | virtual void Dijkstra(MyGraphicsVexItem *strtVex) = 0; |
| 59 | |
| 60 | virtual int Type() const = 0; |
| 61 | }; |
| 62 | |
| 63 | class ALVex; |
| 64 | class ALArc; |
nothing calls this directly
no outgoing calls
no test coverage detected