package 邻接链表;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class GraphRepresentation {
public static void main(String[] args) {
try {
FileReader in = new FileReader("C:\\tinyG.txt");
BufferedReader bl = new BufferedReader(in);
int tempchar;
String str = "";
str = bl.readLine();
int x = Integer.parseInt(str);
str = bl.readLine();
int E = Integer.parseInt(str);
int[][] g = new int[x][x];
str = "";
int a = 0, b = 0;
while ((tempchar = bl.read()) != -1)
{
str = str + (char) tempchar;
if ((char) tempchar == ' ')
{
a = Integer.parseInt(str.trim());
str = "";
}
if ((char) tempchar == '\n')
{
b = Integer.parseInt(str.trim());
g[a][b] = 1;
g[b][a] = 1;
str = "";
}
}
bl.close();
in.close();
FileOutputStream fos = new FileOutputStream("tinyG_matrix.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, "gb2312");
BufferedWriter bw = new BufferedWriter(osw);
str="";
System.out.println("得 到 图 的 邻 接 矩 阵 为 : ");
for (int i = 0; i < x; i++)
{
for (int j = 0; j < x; j++)
{
System.out.print(g[i][j]+" ");
str=str+Integer.toString(g[i][j]);
if(j==12){
System.out.println();
bw.write(str);
bw.newLine();
str="";
}
}
}
bw.close();
osw.close();
}
catch (NumberFormatException e)
{
e.printStackTrace();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
给定图数据文件(tinyG.txt),计算得到图的邻接矩阵,并把邻接矩阵保存到文件(tinyG_matrix.txt)中。