实验四 -图的实现与应用
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程序设计》实验报告
20175208 张家华 实验四《Android开发基础》实验报告