数据结构课程设计---用Dijkstra算法实现一个简易的最佳方案选择

作者:faaronzheng 转载请注明出处!

当时课程设计的题目是管道铺设施工的最佳选择方案:N个居民区之间要铺设煤气管道。假设任意两个居民区之间都可以铺设煤气管道,但代价不同,要求事先将任意两个居民区之间铺设煤气管道的代价存入磁盘文件中。设计一个最佳方案使得这N个居民区之间铺设煤气管道所需代价最小,并将结果以图形式在屏幕上输出。

我用C#简单地实现了一下。Dijkstra算法是用c++写的,通过托管的机制在c#里面使用的。别问我为什么要这么复杂的做,可能我当时太无聊,只是想尝试在一种语言中调用另一种语言。至于Dijkstra算法和托管我就不多说了,网上的例子和讲解很多。感兴趣的可以自己搜索一下。


数据结构课程设计---用Dijkstra算法实现一个简易的最佳方案选择_第1张图片

选择城市数量和路线数量后可以通过单击在窗体上添加一个控件(城市)

数据结构课程设计---用Dijkstra算法实现一个简易的最佳方案选择_第2张图片

通过先后单击两个城市为其添加路线,添加完成后选择始发地和目的地。

数据结构课程设计---用Dijkstra算法实现一个简易的最佳方案选择_第3张图片

红色显示的为最佳方案(最短路径)

数据结构课程设计---用Dijkstra算法实现一个简易的最佳方案选择_第4张图片

题目所要求的代价最小我是用两点之间距离代替的。显示的数字就是代价(距离)。

由于当时所学有限,这个程序的结构不是很好,也算是一个反面教材。感兴趣或有需要的可以下载看看。这个程序存在一些bug,但是不影响使用。


源代码下载

http://download.csdn.net/detail/faaronzheng/7322669


发现bug或有好的改进请告诉我,大家共同学习。


你可能感兴趣的:(dijkstra,最佳方案选择)