资源描述:
《实验7 图及图的操作实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验报告七图及图的操作实验班级:姓名:学号:专业:一、实验目的:1、掌握图的基本概念和术语2、掌握图的存储结构及创建算法。3、掌握图的遍历算法(递归或非递归算法)。二、实验内容:1、图邻接矩阵存储结构表示及基本操作算法实现(1)邻接矩阵存储结构类定义:自定义如下:packageEx7.Ex7_1;importEx5.Ex5_1.Matrix;importEx7.Triple;importjava.util.List;/***Createdby74062on2017/5/17.*/publicclass
2、MatrixGraph{privateMatrixmatrix;privateListvertxList;privatestaticfinalintMAX_WEIGHT=0x0000ffff;privateintsize;publicMatrixGraph(Triple[]TripleArray,ListvertxList){this.matrix=newMatrix(vertxList.size(),vertxList.size());this.vertxList=vertxLis
3、t;for(Tripletriple:TripleArray){insertEdge(triple);}size=vertxList.size();}publicMatrixGraph(ListvertxList){this.matrix=newMatrix(vertxList.size(),vertxList.size());size=vertxList.size();this.vertxList=vertxList;}publicvoidinsertEdge(inti,intj,intwei
4、ght){if(i==j){thrownewIllegalArgumentException("不能插入自身环");}if(weight<0
5、
6、weight>MAX_WEIGHT)weight=MAX_WEIGHT;this.matrix.setElement(i,j,weight);}publicvoidinsertEdge(Tripletriple){insertEdge(triple.getRow(),triple.getColumn(),triple.getweigth());}publicv
7、oidinsertVertex(Ex){this.vertxList.add(x);if(size==matrix.getRow()){ExtendMatrix();}for(intj=0;j<=size;j++){matrix.setElement(size,j,MAX_WEIGHT);matrix.setElement(j,size,MAX_WEIGHT);}size++;}publicvoidremoveEdge(inti,intj){if(i==j){thrownewIllegalArgume
8、ntException("i不能等于j");}this.matrix.setElement(i,j,MAX_WEIGHT);}publicvoidremoveVertex(inti){if(i<0
9、
10、i>=vertxList.size()){thrownewIllegalArgumentException("i超出范围");}intn=vertxList.size();vertxList.remove(i);for(intj=i+1;j11、x.setElement(j-1,k,matrix.getElement(j,k));}}for(intj=0;j=0&&i=-1&&j12、rix.getElement(i,k)>0&&matrix.getElement(i,k)