软件构造Lab2实验总结

本实验当中最主要的工作是实现一个图结构, 并要求使用泛型实现。
各个方法的实现过程:
public boolean add(L vertex)
判断以vertex为名称的点是否已经存在。若存在,不执行任何操作。否则在vertices中增加该节点。
public int set(L source, L target, int weight)
首先区分weight是否等于零。不等于0时再判断点是否已经包含了相应的节点。若未包含则进行添加。查找目标的边。若查找到,更改该边的权重。若查找不到,则添加边。等于0时则查找边集,如果查找到则进行删除,否则不进行任何操作。
public boolean remove(L vertex)
在顶点集当中查找节点。查找到则执行删除操作。查找不到,则什么都不做。
public Set vertices()
遍历顶点集合,将顶点的名称收集到一个集合当中即可。
Map sources(L target)
遍历所有的点,将以target为终止点的边找出并放置在结果集合当中。遍历完成后将结果集合返回。
public Map targets(L source)
返回该顶点的所有邻接到的边即可。
后半部分要求实现一个棋盘结构。这是我第一次真正意义上的面向对象编程,也走了很多弯路,但是仍然得到了实现。最主要的思路是定义一个全局变量指示当前的活动玩家,所有的操作都依据这个变量判断操作是否合法。在游戏进行的过程当中,如果操作正确合法,就进行活动玩家的转换,否则提醒该玩家重新进行操作。实际上本部分还有一定的改进空间,比如使用单例模式等减少内存的占用。
在这里插入图片描述
总而言之,这是我第一次体验面向对象编程的思维方法,极好地强化了java语言的基础知识,使我收获颇丰。

你可能感兴趣的:(软件构造Lab2实验总结)