算法: C语言实现笔记
#include "stdafx.h"
#include <STDIO.H>
#define N 10
int main()
{
int i, j, p, q, id[N];
for(i = 0; i < N; i++)
id[i] = i;
while(scanf("%d %d", &p, &q) == 2)
{
for(i = p; i!= id[i];)
{
i = id[i];//这里要注意,i=id[i]后不一定i==id[i],所以还可能继续循环。
}
for(j = q; j!= id[j]; j = id[j]);//同上
if (i == j) continue;
id[i] = j;
for (i = 0; i < N; i++)
{
printf(" %d ", id[i]);
}
}
return 0;
}
这个算法和1.1的完全不一样,完全不知道他是干什么用的,算小弟无能为力。
这个算法会保证一个根点,在书本上跑到最后的那个例子就是1,根点就是对应点。