实验二之实验一的改动

public static void main(String[] args) {
  try {
   FriendshipGraph graph = new FriendshipGraph();
   Person rachel = new Person("Rachel");
   Person ross = new Person("Ross");
   Person ben = new Person("Ben");
   Person kramer = new Person("Kramer");
   graph.addVertex(rachel);
   graph.addVertex(ross);
   graph.addVertex(ben);
   graph.addVertex(kramer);
   graph.addEdge(rachel, ross);
   graph.addEdge(ross, rachel);
   graph.addEdge(ross, ben);
   graph.addEdge(ben, ross);
   System.out.println(graph.getDistance(rachel, ross));
   // should print 1
   System.out.println(graph.getDistance(rachel, ben));
   // should print 2
   System.out.println(graph.getDistance(rachel, rachel));
   // should print 0
   System.out.println(graph.getDistance(rachel, kramer));
   // should print -1
  } catch (SameNameException e) {
   System.out.println("Each Person Must Have Unique Name.");
  }
 }

private Integer bfs(int s, int t) {
  Queue<Integer> queue = new LinkedList<Integer>();
  queue.offer(s);
  int[] array = new int[n];
  for (int i = 0; i < n; i++)
   array[i] = -1;
  array[s] = 0;
  while (!queue.isEmpty()) {
   int now = queue.poll();
   if (now == t)
    return array[t];
   if (array[now] == -1)
    return -1;
   for (Edge p = g.get(now); p != null; p = p.next) {
    if (array[p.vertex] == -1) {
     array[p.vertex] = array[now] + 1;
     queue.offer(p.vertex);
    }
   }
  }
  return -1;
 }

在这个实验中,我遇到了许多的bug,首先就是面对先写test我不知道应该写什么,事实上,我的test在全部完成后还是存在很多的bug,直到我的程序完成才进行了进一步的修改。然后,在P1中,在完成了边的方面的程序之后,我觉得点的程序应该和边的程序差不多,但是他们还是有一定的区别,因为思路不够清晰,所以走了一些弯路。然后在L中,改成不是固定的类型的时候,出现了很多的错误,由于StringL之间存在着一定的差异,所以在同学的帮助下改正了这些bugP2相对P1比较简单了,就是在P1的基础上进行修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值