软件构造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<L, Integer> sources(L target)
遍历所有的点,将以target为终止点的边找出并放置在结果集合当中。遍历完成后将结果集合返回。
public Map<L, Integer> targets(L source)
返回该顶点的所有邻接到的边即可。
后半部分要求实现一个棋盘结构。这是我第一次真正意义上的面向对象编程,也走了很多弯路,但是仍然得到了实现。最主要的思路是定义一个全局变量指示当前的活动玩家,所有的操作都依据这个变量判断操作是否合法。在游戏进行的过程当中,如果操作正确合法,就进行活动玩家的转换,否则提醒该玩家重新进行操作。实际上本部分还有一定的改进空间,比如使用单例模式等减少内存的占用。
在这里插入图片描述
总而言之,这是我第一次体验面向对象编程的思维方法,极好地强化了java语言的基础知识,使我收获颇丰。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值