Skip to content

GreateCode/Graph

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Graph

这个项目提供 数据结构-- 的一个实现,同时提供一部分图的算法.它被设计为在安全与效率中取得平衡.

目前源文件为./test/test.cpp ,头文件在./include下.

该项目目前有一个表示无向图的模板类:lzhlib::undirected_garph.

该类接受两个模板参数,分别是图中顶点和边存储的数据的类型.

例:

lzhlib::undirected_graph<std::string, std::string> g;
vertex_id v0 = g.add_vertex("v0");
vertex_id v1 = g.add_vertex("v1");
{
    edge_id e0 = g.add_edge(v0, v1);
    assert(g.value(e0) == "");
    g.value(e0) = "e0";
    assert(g.adjacent(v0, v1));
    assert(g.adjacent(v1, v0));
    assert(g.get_edge(v0, v1) == e0);
    assert(g.get_edge(v1, v0) == e0);
    assert(g.value(v0) == "v0");
    assert(g.value(v1) == "v1");
    assert(g.value(e0) == "e0");

    g.remove_edge(e0);
    assert(!g.adjacent(v0, v1));
    assert(!g.adjacent(v1, v0));
}
{
    edge_id e1 = g.add_edge(v0, v1, "e1");
    assert(g.value(e1) == "e1");
    assert(g.adjacent(v0, v1));
    assert(g.adjacent(v1, v0));
    assert(g.get_edge(v0, v1) == e1);
     assert(g.get_edge(v1, v0) == e1);

    g.remove_edge(e1);
    assert(!g.adjacent(v0, v1));
    assert(!g.adjacent(v1, v0));
}

要求:

  • 使用GCC 支持C++14 或以上的编译器,并添加编译选项-std=c++14或更高.

  • 环境变量C_PLUS_INCLUDE_PATH 值:Graph文件夹所在的父目录的路径.(否则可能找不到头文件)
    或者使用GCC编译时添加-I选项后接Graph文件夹所在父目录的路径.

贡献:

期望各位为此供献出自己的力量.更多信息参见 CONTRIBUTINGTODO.

About

数据结构--图 的一些实现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published