Problem3: Social Network

实验环境:

  1. java:    java 9.0.4
                 Java(TM) SE Runtime Environment (build 9.0.4+11)
                 Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)
  2. git:     git version 2.16.1.windows.1
  3. IDE:      intellij IDEA

实验要求:

  1. FriendshipGraph graph = new FriendshipGraph();
  2. Person rachel = new Person("Rachel");
  3. Person ross = new Person("Ross");
  4. Person ben = new Person("Ben");
  5. Person kramer = new Person("Kramer");
  6. graph.addVertex(rachel);
  7. graph.addVertex(ross);
  8. graph.addVertex(ben);
  9. graph.addVertex(kramer);
  10. graph.addEdge(rachel, ross);
  11. graph.addEdge(ross, rachel);
  12. graph.addEdge(ross, ben);
  13. graph.addEdge(ben, ross);
  14. System.out.println(graph.getDistance(rachel, ross));  //should print 1
  15. System.out.println(graph.getDistance(rachel, ben));  //should print 2
  16. System.out.println(graph.getDistance(rachel, rachel));  //should print 0
  17. System.out.println(graph.getDistance(rachel, kramer));  //should print -1 
实现一个有向社交图,设计Person类和FriendshipGraph类,在FriendshipGraph类中实现上述功能;
  • addVertex:增加一个结点
  • addEdge:增加一条有向边
  • getDistance:计算距离(A->B->C,则A与C的距离为2,A与B或B与C的距离为1)
实现测试类 FriendshipGraphTest

实验思路:

类的构造看源代码即可
getDistance方法中我使用BFS而不是最短路径算法进行搜索距离,是由于每条边所代表的长度是相等的
其他详情看注释

实验收获:

学习了JUnit的使用

源代码


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值