一个最简单的图的接口的定义

来源:互联网 发布:数据变换boxcox 编辑:程序博客网 时间:2024/04/26 01:46

这是一个图的最简单的接口,很不齐全,也没有实现,实现放在以后再写。

 

// 边:

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)的顶点集合提供了方便。

原创粉丝点击