兰州交通大学课程设计
cin>>n; cout< w[i] = new double[n]; } for(i = 0; i < n; i++) for(j = 0; j < n; j++) cin>>w[i][j]; for(s[0] = 1,i = 1; i < n; i++) { s[i] = 0; d[i] = w[0][i]; if(d[i] < INFINITE) p[i]=0; else p[i]=-1; } for(i = 1; i < n; i++) { t = INFINITE; k = 1; for(j = 1; j < n; j++) { if((!s[j]) && (d[j] < t)) { t = d[j]; 10 兰州交通大学课程设计 k = j; } } s[k]=1;//point k join the S for (j = 1; j < n; j++) { if((!s[j]) && (d[j] > d[k] + w[k][j])) { d[j] = d[k] + w[k][j]; p[j] = k; } } } cout<<\从源点到其它顶点的最短距离依次如下:\ for(i=1;i (2)运行结果如下: 11 兰州交通大学课程设计 总结 通过对D算法的学习和编程实践,不仅对所学的C语言和matalab知识有了进一步的理解,而且了解了在编程设计中遇到的种种问题和困难,提高了提出和解决问题的能力。认识到理论与实际之间的差距。从而对编程设计有了初步的认识。 由于平日的学业不精,设计中不乏大大小小的错误与漏洞,希望老师的批评与指正。 樊老师平日轻松新颖的教学方法让我们在这学期中受益匪浅,感谢樊老师平日的悉心教导! 12 兰州交通大学课程设计 参考文献 【1】刘金虎著,通信网基础[M].兰州大学出版社,2004. 【2】谭浩强著,C语言程序设计[M]. 清华大学,2005.. 【3】刘卫国 著,MATLAB程序设计及应用[M]. 高等教育出版社,2006. 【4】百度百科,Dijkstra算法[M]. http://baike.http://m.wodefanwen.com//view/7839.htm. 【5】卢开澄,卢华明著. 图论及其应用[M].清华大学,1995. 【6】唐玉民,等著. 通信网基础[M]. 机械工业出版社,2004. 13 兰州交通大学课程设计 14