第四周作业——图的表示

来源:互联网 发布:软件就业培训班 编辑:程序博客网 时间:2024/06/05 03:41

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

package suanfa;import java.io.File;import java.io.PrintWriter;import java.util.Scanner;public class GraphRepresentation {int v;//vertex 顶点int e;//边的数目int [][]matrix;  //邻接矩阵public GraphRepresentation(int v,int e){this.v = v;this.e = e;matrix = new int[v][e];}//两个顶点存在边,设置矩阵的值为1public void addEdge(int v1,int v2){matrix[v1][v2] = 1;matrix[v2][v1] = 1;}//获取邻接矩阵public int[][] getAdjacentMatrix(){return matrix;}public static void main(String[] args) {String path = "d://graph/";try{File file = new File(path+"tinyG.txt");Scanner scan = new Scanner(file);PrintWriter out =new PrintWriter(path+"tinyG_Matrix.txt");int v = scan.nextInt();//读取第一行,顶点的个数int e = scan.nextInt();//读取第二行,边的个数 GraphRepresentation graph = new GraphRepresentation(v,e);//读取每条边对应的顶点,设置邻接矩阵的值for(int i=0;i<e;i++){int v1 = scan.nextInt();int v2 = scan.nextInt();graph.addEdge(v1, v2);}//获取无向图的邻接矩阵,并写入文件int[][] matrix = graph.getAdjacentMatrix();for(int i=0;i<v;i++){for(int j=0;j<v;j++){out.print(matrix[i][j]+"\t");//显示第一行}out.println();}out.close();}catch(Exception e){e.printStackTrace();}System.out.println("已经成功写入文件。。。");}}


0 0
原创粉丝点击