正在加载图片...
《数据结构》实验指导/实验七:图的存储及操作 3 public MGraph g= new MGrapho public ALGraph G= new ALGrapho public Graph Class 构造函数 gedges= new int[MAXV, MAXV; g.vexs= new VertexType MAXV; Gadjlist=new VNode maxi; ∥-图的基本运算算法--- public void CreateMGraph(int n,inte,int,la)∥通过相关数据建立邻接矩阵 for G=0; gedges i,j=a|i,Jl: public string DispMGrapho /输出图的邻接矩阵 string mystr="": I,J; r(i=0; i<g =0;j<gn;j++) if (gedges, jI= INF) mystr+=string. Format(10,-4", gedges i,jl-ToString0); mystr+="rIn"; return mystr; public void MatTolisto 将邻接矩阵g转换成邻接表G int i,j; p for (i=0; i<gn; i++) 给邻接表中所有头结点的指针域置初值 G adjlist[i].fi for(i=0; i<g n; i++) ∥检查邻接矩阵中每个元素 if( gedges i, jl!=0&& g edges,j!:=INF)在一条边 p= new AreNodeo ∥创建一个结点p 管理科学与工程学科/共7页第3页《数据结构》实验指导 / 实验七:图的存储及操作 3 管理科学与工程学科 / 共7页,第3页 public MGraph g = new MGraph(); public ALGraph G = new ALGraph(); public GraphClass() //构造函数 { g.edges = new int[MAXV, MAXV]; g.vexs = new VertexType[MAXV]; G.adjlist = new VNode[MAXV]; } //-------图的基本运算算法----------------- public void CreateMGraph(int n, int e, int[,] a) //通过相关数据建立邻接矩阵 { int i, j; g.n = n; g.e = e; for (i = 0; i < g.n; i++) for (j = 0; j < g.n; j++) g.edges[i, j] = a[i, j]; } public string DispMGraph() //输出图的邻接矩阵 { string mystr = ""; int i, j; for (i = 0; i < g.n; i++) { for (j = 0; j < g.n; j++) if (g.edges[i, j] == INF) mystr += string.Format("{0,-3}", "∞"); else mystr += string.Format("{0,-4}", g.edges[i, j].ToString()); mystr += "\r\n"; } return mystr; } public void MatToList() //将邻接矩阵 g 转换成邻接表 G { int i, j; ArcNode p; for (i = 0; i < g.n; i++) //给邻接表中所有头结点的指针域置初值 G.adjlist[i].firstarc = null; for (i = 0; i < g.n; i++) //检查邻接矩阵中每个元素 for (j = g.n - 1; j >= 0; j--) if (g.edges[i, j] != 0 && g.edges[i, j] != INF) //存在一条边 { p = new ArcNode(); //创建一个结点 p
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有