另一个快速图形算法库

leaf的Python项目详细描述


多叶图形库

leafy是一个用cython编写的python图形库。这种混合使写作速度加快 c中的库,具有python绑定的优点。

用法

图形对象

leafy支持两种类型的图:稠密图和稀疏图。它们由 类leafy.graph.Graphleafy.graph.SparseGraph

要实例化一个graph对象,我们需要知道 图,如果图是有向的。图分解为无向图。

>>>fromleafy.graphimportGraph>>>g=Graph(4)>>>g.add_edge(0,1)>>>g.add_edge(2,3)>>>g.add_edge(2,1)>>>g.matrixarray([[0,1,0,0],[1,0,1,0],[0,1,0,1],[0,0,1,0]],dtype=int32)

相同的边可以定义为有向SparseGraph

>>>fromleafy.graphimportSparseGraph>>>g=SparseGraph(4,True)>>>g.add_edge(0,1)>>>g.add_edge(2,3)>>>g.add_edge(2,1)>>>g.list[[1],[],[3,1],[]]

搜索

leafy可以在图上运行深度优先搜索(dfs)和广度优先搜索(bfs),并且 返回图形搜索属性。

要运行搜索,我们需要定义要搜索的图形和要开始的节点。 在您可以查看属性之前,我们必须调用.run()

>>>fromleafy.searchimportDFS>>>graph=small_graph(request.param)>>>dfs=DFS(graph,0)>>>dfs.run()>>>dfs.simple_path(12)[0,1,2,11,12]>>>dfs.bridges[(1,3),(3,4),(3,5),(2,11),(11,12)]

有向图

对于diagraphs,leafy支持可以从leafy.digraph

导入的dfs。
>>>fromleafy.digraphimportDFS>>>dag=small_dag()>>>dfs=DFS(dag,0)>>>dfs.run()>>>dfs.is_dagTrue>>>dfs.topological_order()[0,6,2,3,5,4,9,11,12,10,1]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带有服务类安卓的java altbeacon   java在OpenXava免费版本中可以创建多个用户吗?   java如何决定定义变量“private”?   java为什么GetMethodID()对不存在的方法不返回NULL?   java Get JComboBox项字符串表示法   java如何在ifs之间设置限制?   java Android错误:IllegalStateException   JavaSpring4MVC语言环境已更改,但JSP对此没有响应   java Netbeans:如何构建。jar文件随附外部文件。jar库?   Spring Petclinic项目Maven编译时出现java错误   声明Java数组增量元素的快速方法   java无法使用相对xpath找到元素   javascript无法更改标题,也无法在操作栏上显示图标   java标签不是一个接一个地动态创建的   java如何使用ThymeLeaf将对象的属性绑定到隐藏字段?   java从EJB无状态会话bean调用CDI会话范围的生产者方法   java为什么num+=array[i]与for循环中的num=num+array[i]的工作方式不同   使用jsonsimple实现jQuery UI自动完成的java JSON格式   JavaFaceletsUI:重复标记中断JSF表单验证