1. 图的表示:给定图数据文件(tinyG.txt),计算得到图的邻接矩阵,并把邻接矩阵保存到文件(tinyG_matrix.txt)中。类名:GraphRepresentation。
package suanfa3;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.PrintWriter;
public class GraphRepresentation {
static int arc[][];
static int vertextNum;
static int arcNum;
static int vartex[];
public static void main(String[] args) {
String path1="src/tinyG.txt";
String path2="src/tinyGResult.txt";
try {
FileReader read=new FileReader(new File(path1));
BufferedReader reader=new BufferedReader(read);
PrintWriter out=new PrintWriter(new File(path2));
String line="";
int index=1;
while((line=reader.readLine())!=null){
if(index==1){
vertextNum=Integer.parseInt(line.trim());
index++;
continue;
}else if(index==2){
arcNum=Integer.parseInt(line.trim());
index++;
continue;
} else if(index==3){
arc=new int[vertextNum][arcNum];
index++;
continue;
}
addEadge(line);
}
for(int i=0;i<vertextNum;i++){
for(int j=0;j<vertextNum;j++){
out.print(arc[i][j]+"\t");
}
out.flush();
out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
//传入格式为"x y"的值分解为x和y,并使arc[x][y]=1和arc[y][x]=1
public static void addEadge(String line){
String []result=line.trim().split(" ");
int v1=Integer.parseInt(result[0]);
int v2=Integer.parseInt(result[1]);
for(int i=0;i<arcNum;i++){
arc[v1][v2]=1;
arc[v2][v1]=1;
}
}
}