实验四 -图的实现与应用


style: ocean

实验四 -图的实现与应用

实验内容

实验1

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

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

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

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

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

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

006EHI3Wly1flukios4vdj311y0lcwh2.jpg

实验2

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

十字链表存储结构

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

定义边表结点结构:
svRaLmr.png
其中,tailvex是指弧起点在顶点表的下标,headvex是弧终点在顶点表的下标,headlink是指入边表指针域,指向终点相同的下一条边,tailvex是指边表指针域,指向起点相同的下一条边。

006EHI3Wly1fln9akj0azj30dj06vdg1.jpg

表示

006EHI3Wly1fln9bqb84hj30p3077t94.jpg

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

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

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

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

006EHI3Wly1fln9ern0waj30m00ex0tk.jpg

实验3

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

006EHI3Wly1flvu5qv6vxj31hc0u0qi8.jpg

006EHI3Wly1flvu6kh9rdj311y0lcwh2.jpg

转载于:https://www.cnblogs.com/pingch/p/7900711.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值