请问各位高手,怎样用STL中的list建立一个有向加权图,并用Dijkstra算法查找两点间的距离?急
解决方案 »
- 如何获取 stack<> 大小?
- 程序是在U盘上打开运行,中途U盘强行拔出电脑,再关闭程序会产生错误
- MDI中两个不同子文档的处理问题
- 求助:控制按钮移动
- 急!怎么调试ActiveX啊。Up有分啊
- 我在MPSend里 修改了tcp的数据段的长度,可以发包出去,但后面的包SEQ/ACK有问题。
- 如何清除IE的临时缓存以及Cookies
- 由于没更新SDK,哪位有psapi.h和psapi.lib麻烦发给我?谢谢!
- 请教各位高人,SQLAnyWhere 数据库是否可以用VC及用ADO连接(我连接后不能输入汉字),用ODBC没有什么问题可以输入汉字,来者有分。
- 有搞电机控制软件的同行吗?一起交流,共同进步
- 排序算法,编译出错,请教如何修改?
- 《Windows 核心编程》中.rc格式文件的一个问题
但是要用这个有向加权图采用Dijkstra算法计算两个点之间的距离就难了。
因为Dijkstra算法的每一步比较中需要读取任意两个节点之间的距离,这用list虽然也可以实现,但是会非常缓慢。N个数据,如果以数组存的话,读取其中的一个元素平均需要1步;
以vector存的话,也需要1步;
而以list存的话,平均需要N /2步。这个网页中有Dijkstra算法的演示:
http://students.ceid.upatras.gr/~papagel/project/kef5_7_1.htm这个网页中有Dijkstra算法的源码:
http://www.codeproject.com/cpp/GcDijkstra.asp