一些图论相关算法的学习研究和C#版演示程序

前段时间学习图论相关的算法,就做了一个C#版的演示程序,这个程序涉及到了如下算法:

深度优先搜索遍历(Depth First Search),

广度优先搜索遍历(Breath Frist Search),

最小生成树(Minimum Spanning Tree),

针对所有端点的Dijsktra最短路径搜索(Dijsktra Path),

针对特定端点的Dijsktra最短路径搜索(Dijsktra Path Single),

还有一些未完成的算法,如欧拉图,一笔画之类的,我会找时间将其也实现上去。

大家可以下载源代码并编译执行(基于.net 2.0)。

这里是程序界面截图:

通过设定Vertex Count(顶点个数)和Edge Ratio(值越大端点之间用边连接的机率越大)可以生成各种不同复杂度的无向图。界面右边有所生成的图的邻接矩阵显示。

图的端点是可以拖动的。大家可以通过拖动这些端点来调整出不同的图来试验算法。

 

照例上传一些算法演示范例动画:

从端点A开始的深度优先遍历

从端点A开始的广度优先遍历

从端点A开始的最小生成树

从端点A开始通向所有端点的最短路径(Dijsktra算法)

从端点A开始端点F的最短路径(Dijsktra算法)

 

posted on 2009-12-14 03:59  林大虾  阅读(1457)  评论(1编辑  收藏  举报

导航