码迷,mamicode.com
首页 > 其他好文 > 详细

实验四 图的实现与应用

时间:2017-11-26 15:06:25      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:markdown   null   位置   ges   ima   链表   头结点   存在   邻接矩阵   

图的实现与应用 - 1

题目要求:

用邻接矩阵实现无向图(边和顶点都要保存),实现在包含添加和删除结点的方法,添加和删除边的方法,size(),isEmpty(),广度优先迭代器,深度优先迭代器

给出伪代码,产品代码,测试代码(不少于5条测试)

上方提交代码链接

附件提交测试截图

实验内容:

  • 邻接矩阵:假设图G=(V,E)有n个结点,即V={v0,v1,…,vn-1},E可用如下形式的矩阵A描述,对于A中的每一个元素aij,满足:aij=1表示i和j节点有边相连,aij=0表示i和j没有边相连。
    由于矩阵A中的元素aij表示了结点vi和结点vj之间边的关系,或者说,A中的元素aij表示了结点vi和结点vj(0≤j≤n-1)的邻接关系,所以矩阵A称作邻接矩阵。 aij=多少的数表示i和j的路径权值。

  • 技术分享图片

  • 思路:总的来说,用ArrayList来存储顶点,用数组来存储边;如果边存在就将相应的位置的数字改为1,不是则还是null。深度广度迭代器课本上就有现成的代码。

实验截图:

技术分享图片

图的实现与应用 - 2

题目要求:

用十字链表实现无向图(边和顶点都要保存),实现在包含添加和删除结点的方法,添加和删除边的方法,size(),isEmpty(),广度优先迭代器,深度优先迭代器

给出伪代码,产品代码,测试代码(不少于5条测试)

上方提交代码链接

附件提交测试截图

实验内容:

  • 十字链表::是有向图的一种存储方法,它实际上是邻接表与逆邻接表的结合,即把每一条边的边结点分别组织到以弧尾顶点为头结点的链表和以弧头顶点为头顶点的链表中。

  • 有许多代码都可以参考第一个实验,只是在表示边的时候要将二维数组实现的改为用列表表示。

实验截图:

技术分享图片

图的实现与应用 - 3

实验内容:


实现PP19.9
给出伪代码,产品代码,测试代码(不少于5条测试)
上方提交代码链接
附件提交测试截图

实验内容:

  • pp19.9的要求其实就是构造一个带权值边的图并求最短路径,所以要有一个单独类构造一个有权图。

  • 第二就是求最便宜路径(最短路径),构建一个球最短路径的方法

  • 最后就是自己构建一个图进行测试。

实验截图:

技术分享图片

实验四 图的实现与应用

标签:markdown   null   位置   ges   ima   链表   头结点   存在   邻接矩阵   

原文地址:http://www.cnblogs.com/1zhjch/p/7898827.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!