好文档 - 专业文书写作范文服务资料分享网站

离散数学--最小生成树实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

} }

sort(edges, G);

for (i = 1; i <= G->arcnum; i++) {

parent[i] = 0; }

printf(\最小生成树为:\\n\ for (i = 1; i <= G->arcnum; i++) {

n = Find(parent, edges[i].begin); m = Find(parent, edges[i].end); if (n != m) {

parent[n] = m;

printf(\%d, %d >> edges[i].end, edges[i].weight);

} } }

int Find(int *parent, int f) {

while ( parent[f] > 0) {

f = parent[f]; }

return f; }

int main(void)

- 6 -

%d\\n\edges[i].begin, {

MGraph *G;

G = (MGraph*)malloc(sizeof(MGraph)); if (G == NULL) {

printf(\ exit(1); }

CreatGraph(G);

MiniSpanTree(G);

system(\ return 0; }

- 7 -

运行结果:

五、实验总结(结果分析和体会)

在编程时,因为考虑的情况比较多,所以容易造成错误和遗漏,为了避免这些问题的出现,可以先用笔把所有的程序在纸上,然后再根据列表编写程序,这样不仅简单易懂,还避免了一些不必要的错误。

编写完程序后进行调试,发现有很多错误,其中也不乏一些基本的小错误,所以程序写完后进行静态检查是必不可少的,其次是逻辑上的错误,对于这些错误,只能再认真检查整个程序,这就要求我们在编程时考虑要周到,或者可以请其他同学帮忙检查。

通过这次对算术表达式求值的设计,让我自己对克鲁斯卡尔算法的运用更深刻,能够基本上很好的运用克鲁斯卡尔算法来解决一些问题。不过从中也发现了很多问题,那就是虽然课本知识的掌握还不错,但是上机编程的能力还有所匮乏,应该加强这方面的锻炼,通过上机的实践来提升对基础知识的理解。还有就是应该多和同学交流,比如一个相同的问题,我有我的编程思路,他有他的,通过相互的交流、讨教,可以获得更广的知识信息,开拓思维,自己不懂的通过咨

- 8 -

询就可以掌握。

- 9 -

离散数学--最小生成树实验报告

}}sort(edges,G);for(i=1;iarcnum;i++){parent[i]=0;}printf(\最小生成树为:\\n\for(i=1;iarcnum;i++){<
推荐度:
点击下载文档文档为doc格式
7yhrr7cyyo6i8st1cmrf
领取福利

微信扫码领取福利

微信扫码分享