昨天发了一个C语言写的连通性测试程序,今天把它改成了Java。
本人觉得,Java写的更好理解一些,连通性的概念可以看《C算法(第1卷)》这本书,下面分享一下该书的阅读地址。
《C算法(第1卷)》
// 名称:测试连通性(Java实现)
// 学校:河北大学
// 作者:来智慧<3552743712@qq.com>
// 时间:2016年10月9日
import java.util.Scanner;
public class H1009{
public static void main(String[] args){
// 声明一个整形数组,填充0~9
int[] array = new int[10];
for(int i = 0; i < 10; i++){
array[i] = i;
}
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
// 循环输入十次,测试输入数值的连通性
for(int i = 0; i < array.length; i++)
{
System.out.print("请输入两个0~9之间的数:");
int numberOne = input.nextInt();
int numberTwo = input.nextInt();
// 如果numberOne位置的数和numberTwo位置的数相等,则说明两数是连通的
if(array[numberOne] == array[numberTwo]){
System.out.println(numberOne + " " + numberTwo + " 是连通的");
}
// 否则的话,将number One位置的数取出,遍历整个数组,判断那个位置的数与numberOne所在位置的数相等
// 如若找得到,则将此位置的数改为numberTwo位置的数
// 同时,打印两数不连通
else{
int t = array[numberOne];
for(int j = 0; j < 10; j++){
if(array[j] == t){
array[j] = array[numberTwo];
}
}
System.out.println(numberOne + " " + numberTwo + " 是不连通的");
}
}
}
}
本人目前正在学习算法,有想一起学习的可以加一下我QQ,互相交流~