迪杰斯特拉算法例题(迪杰斯特拉算法)
导读 ①是全部初始化。但是在后面的循环中,P[v][j]的值是不断发生变化的,第一轮循环是②处当然就是①初始化的结果,但因为后面给P[v][j]有赋值...
①是全部初始化。
但是在后面的循环中,P[v][j]的值是不断发生变化的,第一轮循环是②处当然就是①初始化的结果,但因为后面给P[v][j]有赋值,网络又是相互连通的,所以从第2轮开始在②处就不是所有的P[v][j]都为0。
补充:我没分析你的程序是否正确,但你说能得到正确结果,那么假设你的程序是正确的。
请注意: for(j=0;P[v][j]!=0;j++) ; ② //这有个分号! P[v][j]=v; 上面两句话的意思是: for(j=0;P[v][j]!=0;j++) ; // 搜索第一个为0的P[v][j] P[v][j]=v; //给这个不为0的P[v][j]赋值v。
免责声明:本文由用户上传,如有侵权请联系删除!