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

本文详细介绍了在DTLib命名空间下,使用C++模板实现的Graph类,该类能够处理有向图和无向图,通过一系列虚拟函数提供了顶点和边的操作,包括获取和设置顶点值、获取相邻顶点、获取和设置边值、删除边、计算顶点的出入度等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

添加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

 

小结:

 

转载于:https://www.cnblogs.com/wanmeishenghuo/p/9696658.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值