首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

问一下下面这个程序中(很短)seeks函数的作用,看不懂啊该如何处理

2012-02-06 
问一下下面这个程序中(很短)seeks函数的作用,看不懂啊#includestdio.h #includeiostreamusingnamespac

问一下下面这个程序中(很短)seeks函数的作用,看不懂啊
#include   "stdio.h "
#include   <iostream>

using   namespace   std;

#define   MAXE   100                                           //定义最大空间100
struct   edges                                                  
{
int   bv;                         //初始顶点
int   tv;                         //结束顶点
int   w;                           //两顶点间权值
};
typedef   struct   edges   edgeset;
int   seeks(int   set[],int   v)                    
{
int   i;
i=v;
while(set[i]> 0)
i=set[i];
return   i;
}
void   kruskal(edgeset   ge[],int   n,int   e)
{
int   set[MAXE],v1,v2,i,j;
for(i=1;i <n+1;i++)  
set[i]=0;
i=1;
j=1;
while(j <=e&&i <=n-1)
{
v1=seeks(set,ge[j].bv);
v2=seeks(set,ge[j].tv);
if(v1!=v2)
{
cout < < "( " < <ge[j].bv < < ", " < <ge[j].tv < < "): " < <ge[j].w < <endl;
set[v1]=v2;
i++;
}
j++;
}
}
void   insertsort(edgeset   ge[],int   e)
{
int   i,j;
for(i=2;i <=e;i++)
if(ge[i].w <ge[i-1].w)
{
ge[0]=ge[i];
j=i-1;
while(ge[0].w <ge[j].w)
{
ge[j+1]=ge[j];
j--;
}
ge[j+1]=ge[0];
}
}

void   main()
{
edgeset   ge[MAXE];
int   n,e,i;
cout < < "input   the   number   of   point: ";
cin> > n;
cout < < "input   the   number   of   edges: ";
cin> > e;
cout < < "input   the   edges: " < <endl;
for(i=1;i <=e;i++)
cin> > ge[i].bv> > ge[i].tv> > ge[i].w;
insertsort(ge,e);
kruskal(ge,n,e);
}

[解决办法]
seeks是重新对指向位置进行操作。
[解决办法]
定位到该连通分支的根结点

热点排行