实验四 -图的实现与应用

Posted 20162308马平川

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验四 -图的实现与应用相关的知识,希望对你有一定的参考价值。


style: ocean

实验四 -图的实现与应用

实验内容

实验1

用邻接矩阵实现无向图(边和顶点都要保存),实现在包含添加和删除结点的方法,添加和删除边的方法,size(),isEmpty(),广度优先迭代器,深度优先迭代器。给出伪代码,产品代码,测试代码(不少于5条测试)。。上方提交代码链接。附件提交测试截图。

一般存储图的方式有两种:一是用邻接矩阵表示,二是用邻接链表。

所谓用邻接矩阵,是用一个二维数组存储,边使用矩阵来构建模型,这使得每一个顶点和其它顶点之间都有边的有无 的 表示的机会。若有边,则他们交点 为1 ,否则为0。当然,如果是一副边有权值的图,交点存储的是他们边的权值。

首先收一下无向图的存储:

无向图的边的矩阵一定是一个对称矩阵,因为无向图只关心边是否存在,而不关心方向,V0和V1有边,那么V1和V0也有边。

因为这里不研究有圈图,所以主对角线都是0,输入V0和V1边的关系后,就不必输入V1和V0的关系了。

技术分享图片

实验2

用十字链表实现无向图(边和顶点都要保存),实现在包含添加和删除结点的方法,添加和删除边的方法,size(),isEmpty(),广度优先迭代器,深度优先迭代器。给出伪代码,产品代码,测试代码(不少于5条测试)。上方提交代码链接。附件提交测试截图。

十字链表存储结构

定义顶点表结点结构:
技术分享图片
其中,firstIn表示入边表头指针,指向该顶点的入边表中第一个结点,firstOut表示出边表头指针,指向该顶点的出边表中的第一个结点。

定义边表结点结构:
技术分享图片
其中,tailvex是指弧起点在顶点表的下标,headvex是弧终点在顶点表的下标,headlink是指入边表指针域,指向终点相同的下一条边,tailvex是指边表指针域,指向起点相同的下一条边。

技术分享图片

表示

技术分享图片

  • 给定一个有向图,先画出其邻接表及逆邻接表

  • 将两个表中的顶点转化为所在边,即两个顶点组成;

  • 在邻接表中添加一个指针域,作为逆邻接表的指针域;

  • 将逆邻接表中的链接线在邻接表中找出并进行链接;

技术分享图片

实验3

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

技术分享图片

技术分享图片





以上是关于实验四 -图的实现与应用的主要内容,如果未能解决你的问题,请参考以下文章

2017-2018-2 20165336 实验四《Android开发基础》实验报告

# 2018-2019-2 20175304实验四《Android程序设计》实验报告

实验四《Android程序设计》实验报告封面

20175208 张家华 实验四《Android开发基础》实验报告

2017-2018-2 20165228 实验四《Android程序设计》实验报告

网络对抗技术实验四