【发布时间】:2012-06-11 18:04:35
【问题描述】:
我正在编写代码来查找两点之间的最短距离。到目前为止,我的代码运行良好。我的意思是它找到了他们应该通过的距离和路径。我需要打印这些信息,但我应该做一个打印功能。它的工作方式是这样的:例如初始点是 4,最终点是 13。
我应该想出一个算法来检查它们的中间点。假设在 4 和 13 之间有一点:7
4--7--13 现在我需要检查它们之间的每一点,例如:
4--6--7--9--13 更具体地说,它将检查 4-6 和 6-7 以及 7-9 和 9-13 之间是否存在点。因此,在下一次迭代中,它可能会形成另一个列表,例如:
4--2--6--7--5--9--17--13 现在假设它们之间不会有任何中间值。这就是我应该打印的。我真的很感激你可以给我的任何帮助和建议
【问题讨论】:
-
使用递归构建点列表,并在递归返回时打印。不管怎样,这是作业吗?
-
但是我应该如何使用递归呢?不,这不是功课
-
您是如何存储积分的?如果您的点适合存储在图形结构中(大多数点系统基本上都属于图形结构),那么解决此问题的最佳方法之一就是使用图形算法。
-
您使用哪种算法?迪杰斯特拉?
-
您是否将程序中的点表示(或可以)作为图形数据结构中的节点?使用图可以实现Floyd-Warshall 算法并获得所有图节点之间的最小距离
标签: c algorithm shortest-path