Java实现 数据结构之邻接矩阵

来源:互联网 发布:淘宝估值 编辑:程序博客网 时间:2024/06/05 19:56
package graph;import java.util.Scanner;/** * @author  作者 E-mail:923861438@qq.com * @date    创建时间:2016年10月6日 下午4:35:39* @version 1.0 * @parameter  * @since  * @return*/public class Graph {final int MAX=256;int numVertexes;int numEdges;String []vex;int  acr[][];public Graph(){vex=new String[MAX];acr=new int[MAX][MAX];}// 建立无向网图,  给图中的  顶点内容 和  边权重  赋值public void buildGraph(Graph g){//读入顶点数和边数System.out.println("请输入顶点数:\n");Scanner sc=new Scanner(System.in);numVertexes=sc.nextInt();System.out.println("请输入边数:\n");numEdges=sc.nextInt();//读入顶点信息,建立顶点表for(int i=0;i<g.numVertexes;i++){System.out.print("第"+i+"个顶点信息为:");vex[i]=sc.next();}//邻接矩阵初始化for(int i=0;i<g.numVertexes;i++)for(int j=0;j<g.numVertexes;j++){g.acr[i][j]=MAX;}//读入边信息,建立邻接矩阵for(int k=0;k<g.numEdges;k++){System.out.println("请输入边(i,j)的下标i:\n");int i=sc.nextInt();System.out.println("请输入边(i,j)的下标j:\n");int j=sc.nextInt();System.out.println("请输入边(i,j)的权重w:\n");int w=sc.nextInt();g.acr[i][j]=w;g.acr[j][i]=g.acr[i][j];}sc.close();}public void printGraph(Graph g){ System.out.print("        ");for(int i=0;i<g.numVertexes;i++){System.out.print(g.vex[i]+"     ");}for(int i=0;i<g.numVertexes;i++){System.out.println();System.out.print(g.vex[i]+"      ");for(int j=0;j<g.numVertexes;j++){System.out.print(g.acr[i][j]+"     ");}}}public static void main(String []args){Graph g=new Graph();g.buildGraph(g);g.printGraph(g);}}

<img src="http://img.blog.csdn.net/20161006205614539?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" style="font-family: Arial, Helvetica, sans-serif;" alt="" />

《-------------------------------------------转载请注明出处----------------------------------------------》

1 0
原创粉丝点击