本文主要是介绍HIT软件构造Lab2 Poetic Walks前半,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2.1
Poetic Walks:通过任务学习泛型的设计,泛型类的测试,抽象类继承等方面的知识,根据自己设计的泛型实例完成任务。可变图:可以将顶点和边添加到图中或从图中删除;有向边:边从源顶点到目标顶点;加权边:边与正整数权重关联;标记顶点:顶点通过某种不可变类型的标签来区分,例如,它们可能具有String名称或IntegerID。
2.12
Problem 1: Test Graph <String>
Graph里面的empty()修改为
2.13
Problem 2: Implement Graph <String>
2.13.1
Implement ConcreteEdgesGraph
1.实现Edge类
public Edge (L source, L target, int weight)
private void checkRep()
public L getSourceVertex()
public L getTargetVertex()
public int getWeight()
public String toString()
2.实现ConcreteEdgeGraph类
加入顶点,如果成功返回True,不成功则返回False
public boolean add(L vertex)
如果weight<0,返回-1,如果weight大于0且边存在,更改weight,边不存在则加入新边,返回之前的weight。
public int set(L source, L target, int weight)
从vertices中删除vertex,并查找是否有边的起点或终点是vertex
public boolean remove(L vertex)
返回vertices
public Set<L> vertices()
寻找source,寻找target,返回map
public Map<L, Integer> sources(L target)
2.13.2
Implement ConcreteVerticesGraph
1.实现Vertex类
weight小于0返回-1,weight=0调用sources.remove,weight>0调用Map.put返回初始值
public int Setsource(L source, int weight)
weight小于0返回-1,weight=0调用targets.remove,weight>0调用Map.put返回初始值
public int Settarget(L target, int weight)
如果存在source,调用source.remove,,返回true;否则返回false。Target同理
public boolean Removesource(L source)
public boolean Removesource(L source)
返回名字
public L GetName()
都返回一个(点,权值)的map,根据传入的的source和target寻找以他们为起点的边。
public Map<L, Integer> getSources()
public Map<L, Integer> getTargets()
2.ConcreteVerticesGraph类
public ConcreteVerticesGraph()
private void checkRep()
方法基本功能同ConcreteEdgeGraph类
这篇关于HIT软件构造Lab2 Poetic Walks前半的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!