软件构造Lab2的实现思路

一.Poetic Walks

需要完成两个实例类ConcretVerticesGraph和ConcreateEgdesGraph实现Graph接口,并按要求实现其完善规约。

要以边和点两种方式实现接口,将String拓展为泛型L。实现ConcretEdgesGrap和ConcreteVertexGraph中接口中定义的各个函数。该过程中要具体实现add(添加新节点),set(添加新边),remove(移除节点),vertices(获得所有点集合),sources(target)获得以target为目标节点的边的起始节点,targes(source)获得以source为起始节点的边的目标节点

Poet:根据文件输入,如果相邻两个词之间构成一条有向边,通过Graph接口构造有向图。再输入给定的由单词组成的其句子,若相邻的两个词之间有一个中间单词,则将中间单词插入。若有多个单词,则选取边权重较大的单词插入。

  • Get the code and prepare Git repository

$ Git init

$ Git remote add origin git@github.com:ComputerScienceHIT/HIT-Lab2-1190201411jtt.git

$ Git pull origin master

$ Git add .

$ Git commit -m “init”

$ Git push origin master

  • Problem 1: Test Graph <String>

以下各部分,请按照MIT页面上相应部分的要求,逐项列出你的设计和实现思路/过程/结果。

ConcreteEdgesGraph作为Graph<String>的具体实现静态 Graph.empty()方法的测试在GraphStaticTest.java,为了运行这个测试,首先Graph<L> empty()进行如下修改

GraphStaticTest进行run得到如下测试结果

 

  • Problem 2: Implement Graph <String>

以下各部分,请按照MIT页面上相应部分的要求,逐项列出你的设计和实现思路/过程/结果。

       Implement ConcreteEdgesGraph

  1. 实现ConcreteEdgesGraph类

函数

解释说明

ConcreteEdgesGraph()

对graph中边和点进行抽象添加结点根据权值对边进行添加、修改或删除操作获得全部结获得起点、终点等信息。构建有向图并打印图的信息

checkRep()

根据数学关系:n个顶点最多构成n*(n-1)/2条有向边进行检验。source和target不能是null,并且 weight >= 0

add(L vertex)

vertices的Set集合中成功添加了顶点string,则返回true

findEdge(L source, L target)

判断list是否存在一条指定的边,该边的source和target必须与传入的参数相等,返回该边的index

set(L source, L target, int 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值