123
返回列表 发新帖
楼主: pirateshadow
跳转到指定楼层
上一主题 下一主题
收起左侧

Berkeley CS 61B Data Structures(in Java) lab13

🔗
yywwd 2017-8-14 22:03:59 | 只看该作者
全局:
自己做完 再看看上面的讨论 感觉自己弱爆了。。。。快结课了。。还是好弱。。加油!!
回复

使用道具 举报

🔗
yagamy 2017-8-15 10:04:49 | 只看该作者
全局:
楼上讨论的BFS之类的好高大上,我感觉自己好low… 只会用几个嵌套loop,而且连recursion也用得不利索。。T_T
回头又看了一下老师的BFS笔记,里面用到了queue,但是这里也没有implement queque,我们要怎么实现BFS呢? 找github代码也没找到有用的。还望大神解答~

回复

使用道具 举报

🔗
ddy301 2018-5-20 00:51:57 | 只看该作者
全局:
lab13已完成~

更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
shendezhuti 2019-5-25 22:09:03 | 只看该作者
全局:

感觉自己还是有点菜啊,partI只会那种三重循环的。。。part2的话根据readme.pdf的提示用到了recursion,但是感觉效率也很低,有没有大佬指点一下如何优化,首页的思路没看懂。
回复

使用道具 举报

🔗
Alansong641 2020-2-12 23:11:59 | 只看该作者
全局:
本帖最后由 Alansong641 于 2020-2-12 23:22 编辑

附上截图:

part2的思想和part1类似,只是加上了recursion。因此每个迭代的level就是一个BFS的level。但是和lecture28中的BFS实现不一样,DFS才需要使用迭代,而BFS一般用while循环配合queue,然后loop每个刚标为visited的vertices。这里不需要while和queue,而且是无向图,只需要recurse length即可。
个人认为是recursion部分值得学习,利用的精华在于:public UDGraph paths(int length)的返回值是UDGraph itself
所以我们可以应用path方法的返回值(UDGraph类)的方法进行迭代,迭代至length=2,就可以使用part I中的 length2Paths()方法了。
  1. paths(length-1).hasEdge(i, j)
复制代码

忽略了它的返回值,导致想了半天
它的return值 若某两点(i和j)之间有edge的话,edge的长度为length-1,我们再用part I的办法判断j和所有的vertices k 比较就能得出length为“length”的edge(i和k)了

另外想知道part I有什么更好的loop方法,目前只能想到三层的loop!


回复

使用道具 举报

🔗
spinsurround 2020-3-14 15:44:49 | 只看该作者
全局:
本帖最后由 spinsurround 于 2020-3-14 15:49 编辑
  1.   public UDGraph length2Paths() {
  2.     UDGraph newGraph = new UDGraph(vertices);
  3.     // Put your answer to Part I here.
  4.     for (int i = 0; i<vertices ; i++ ) {
  5.       for (int j = 0; j<vertices; j++ ) {
  6.         if (hasEdge(i,j)) {
  7.           for (int k = 0; k<vertices ; k++ ) {
  8.             if (hasEdge(j,k)) {
  9.               newGraph.addEdge(i,k);
  10.             }
  11.           }
  12.         }
  13.       }
  14.     }
  15.     return newGraph;
  16.   }
复制代码
这是我part1代码,应该是readme中说的,“It's possible
to do it with a relatively simple triply-nested loop.”

各位同学还有更快的算法吗,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表