一个最简单的图的接口的定义
2008-11-14 08:33
381 查看
这是一个图的最简单的接口,很不齐全,也没有实现,实现放在以后再写。
// 边:
struct Edge
{
int v, w;
Edge(int v=-1, int w=-1): v(v), w(w){}
};
// 图:
class GRAPH
{
public:
GRAPH(int, bool); // 两个参数:顶点数和是否为有向图
~GRAPH();
int V() const; // 返回顶点数
int E() const; // 返回边数
bool directed() const; // 是否为有向图
int insert(Edge); // 插入边
int remove(Edge); // 删除边
bool edge(int, int); // 两个顶点是否邻接(有一条边直接连接这两个顶点)
// 迭代器:
class adjIterator
{
public:
adjIterator(const GRAPH&, int );// 第一个参数:图的引用,第二个:顶点
int beg(); // 返回第一个与该顶点邻接的顶点
int nxt(); // 下一个
bool end(); // 是否为最后一个
};
private:
// member variables
};
之所以没有实现这个接口,是因为它依赖于图的具体的表示。
迭代器的实现,为我们遍历与某个顶点邻接(v)的顶点集合提供了方便。
// 边:
struct Edge
{
int v, w;
Edge(int v=-1, int w=-1): v(v), w(w){}
};
// 图:
class GRAPH
{
public:
GRAPH(int, bool); // 两个参数:顶点数和是否为有向图
~GRAPH();
int V() const; // 返回顶点数
int E() const; // 返回边数
bool directed() const; // 是否为有向图
int insert(Edge); // 插入边
int remove(Edge); // 删除边
bool edge(int, int); // 两个顶点是否邻接(有一条边直接连接这两个顶点)
// 迭代器:
class adjIterator
{
public:
adjIterator(const GRAPH&, int );// 第一个参数:图的引用,第二个:顶点
int beg(); // 返回第一个与该顶点邻接的顶点
int nxt(); // 下一个
bool end(); // 是否为最后一个
};
private:
// member variables
};
之所以没有实现这个接口,是因为它依赖于图的具体的表示。
迭代器的实现,为我们遍历与某个顶点邻接(v)的顶点集合提供了方便。
相关文章推荐
- 8.2 定义一个简单的泛型类
- IEnumerable接口的一个简单示例
- 抽象--面向接口编程--一个简单的小设计
- [转]C++接口的定义用一个实例说明
- java多线程与并发 - 自己实现一个简单的锁(实现Lock接口)
- 用dubbo+zookeeper+spring搭建一个简单的http接口程序
- 一个简单的微信公共平台接口类
- MFC工程中 定义一个变量让所有源程序都能用的最简单的方法
- 一个简单的javascript类定义例子
- 一个简单的javascript类定义例子
- 简单编程(十九)定义一个数组来存储12个学生的成绩。统计各成绩等级
- Android异步通信机制简单地理解,Handler是当前线程的消息队列中的一个子队列,而Runable是可以被安排到Handler去运行的接口。 首先在Activity中创建一个继承自Han
- 使用PHP开发一个简单的后台接口(响应移动端的get请求和post请求)
- 定义一个接口 MediaPlayer,表示家庭影院的一个设备。MediaPlayer 中 包含 play(),stop(), open()三个方法,分别表示播放、停止和开仓功能。
- 如何定义一个简单的Concurrent Program
- 一个简单的接口实现
- 接口的定义和简单工厂的举例
- 定义一个线性表接口
- 使用hadoop命令rcc生成Record 一个简单的方法来实现自己的定义writable对象
- 简单编程(十四)定义一个方法能够判断并返回两个整数的最大值,并调用自己的方法测试是否正确。