ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:252.44KB ,
资源ID:15360388      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15360388.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构图的实现Word文档下载推荐.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构图的实现Word文档下载推荐.docx

1、public class Graph static final int MaxNum=20; /最大节点数目 /用long的最大数来表示无穷大 static final long MaxValue=9223372036854775807L; char Vertex = new charMaxNum; /定义数组,保存顶点信息 int GType; /图的类型0:无向图,1:有向图 int VertxNum; /顶点的数量 int EdgeNum; /边的数量 long EdgeWeight = new longMaxNumMaxNum; /矩阵保存顶点 int isTrav = new int

2、MaxNum; /用来标记顶点是否已深度遍历 /创建图 public void CreateGraph(Graph g) int i , j , k; long weight; /权 char EstartV, EndV; /边的起始顶点 System.out.println(输入途中各顶点的信息); Scanner scan=new Scanner(System.in); for(i=0; i g.VertxNum; i +) 第 + (i+1) + 个顶点 g.Vertexi = (scan.next().toCharArray()0; 输入构成各边的顶点和权值 for(k=0;kg.Ed

3、geNum;k+) + (k+1) + 条边: EstartV = scan.next().charAt(0); EndV = scan.next().charAt(0); weight = scan.nextInt(); EstartV!=g.Vertexi ; i+);/查找开始节点 for(j=0; EndV != g.Vertexj; j+); /查找终结点 g.EdgeWeightij = weight; /对应边的权重 if(g.GType = 0) /无向图,在对角位置保存权重 g.EdgeWeightji = weight; /清空图,将所有的矩阵元素设为无穷大 public

4、void ClearGraph(Graph g) int i,j; i i+) for(j =0; jg.VertxNum; j+) /设置矩阵中各元素的值为MaxValue g.EdgeWeightij = Graph.MaxValue; /输出邻接矩阵 public void PrintGraph(Graph g) for(j = 0; j j +) System.out.print(t + g.Vertexj); /输入顶点信息 System.out.println(); for(i =0 ;i System.out.print( g.Vertexi);j j+) if(g.EdgeWe

5、ightij = Graph.MaxValue)/若权值为无穷大t& /& 表示无穷大 else + g.EdgeWeightij); /深度遍历 public void DeepTraOne(Graph g,int n) /从第n个节点开始遍历 int i; g.isTravn = 1; /标记为1表示该顶点已经被处理过 System.out.println(g.Vertexn); /输出节点 for(i = 0; i+) if(g.EdgeWeightni != g.MaxValue & g.isTravi = 0) DeepTraOne(g, i); /递归进行遍历 public voi

6、d DeepTraGraph(Graph g) g.isTravi= 0;深度优先遍历: g.VertxNum ; if(g.isTravi = 0) DeepTraOne(g,i); / 开始广度遍历 private int FirstVertex(int v) if (v(Vertex.length-1) return -1; for (int i = 0; Vertex.length; i+) if (EdgeWeightvi = 1) return i; /返回顶点v相对于w的下一个邻接顶点的索引,失败则返回-1 private int NextVertex(int v, int w)

7、 (Vertex.length-1) | w for (int i = w + 1; public void BFS() int head = 0; int rear = 0; int queue = new intVertex.length; / 辅组数组 / 顶点访问标记 boolean visited = new booleanVertex.length; visitedi = false;BFS广度优先遍历: i+) if (!visitedi) visitedi = true;+ Vertexi); queuerear+ = i; while (head != rear) int j

8、 = queuehead+; for (int k = FirstVertex(j); k = 0; k = NextVertex(j, k) /k是为访问的邻接顶点visitedk) visitedk = true;+ Vertexk); queuerear+ = k; /图求度 public void GetDegree(Graph g) /无向图 if(GType=0) int degree=0; for(int i=0;ii+) System.out.print(顶点+Vertexi+的度为: for(int j=0;jj+) if(g.EdgeWeightij!=MaxValue)

9、degree+; System.out.print(degree); System.out.println(); degree=0; /有向图 else int indegree=0; int outdegree=0;的出度为: indegree+; if(g.EdgeWeightji! outdegree+; System.out.print(indegree); 入度为:+outdegree+ indegree=0; outdegree=0;测试编码:public class GraphTest public static void main(String args) Scanner scan=new Scanner(System.in); Graph g = new Graph();输出生成图的类型: g.GType = scan.nextInt(); /图的种类 输入图的顶点数量: g.VertxNum = scan.nex

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1