图的表示

来源:互联网 发布:14.04 linux 输入法 编辑:程序博客网 时间:2024/06/06 11:00

图的表示:给定图数据文件(tinyG.txt),计算得到图的邻接矩阵,并把邻接矩阵保存到文件(tinyG_matrix.txt)中。类名:GraphRepresentation


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("F:\\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_matrix.txt中,如下:



0 0