楼主: jaly50
跳转到指定楼层
上一主题 下一主题
收起左侧

Berkeley CS 61B Data Structures(in Java) Homework4 加分+讨论帖

 
🔗
啊lch 2017-1-6 09:32:41 | 只看该作者
全局:
本帖最后由 啊lch 于 2017-2-21 05:12 编辑

很好的一次作业,对继承的理解很有帮助。前面的同学有的虽然也通过了测试,但是看所用的方法明显没有真正理解继承的本质,置顶的回复分析的很好

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

评分

参与人数 1学分 +1 收起 理由
yingy4 + 1

查看全部评分

回复

使用道具 举报

🔗
panyoumeiyi 2017-1-10 09:49:23 | 只看该作者
全局:
本帖最后由 panyoumeiyi 于 2017-1-10 09:52 编辑

以下是hw4, 不过貌似没看到Lab5 的讨论贴呀~~~
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
panyoumeiyi 2017-1-10 09:55:34 | 只看该作者
全局:
本帖最后由 panyoumeiyi 于 2017-1-10 10:00 编辑
啊lch 发表于 2017-1-6 09:32
很好的一次作业,对继承的理解很有帮助。前面的同学有的虽然也通过了测试,但是看所用的方法明显没有真正理 ...

Hi,你的DList那里是不是有个地方错掉啦,
After insertBefore() and insertAfter(), The first 3 nodes should be 5,6,8. The list is: [  5  6  8  9  12  15  ]
然后对应的 LockDlist那里也有点点小错好
希望对你有帮助~~~
回复

使用道具 举报

🔗
youngyang 2017-1-13 16:58:06 | 只看该作者
全局:
homework还是比较短比较省事的。。
更多图片 小图 大图
组图打开中,请稍候......

评分

参与人数 1学分 +1 收起 理由
啊lch + 1

查看全部评分

回复

使用道具 举报

🔗
brianu 2017-1-17 08:18:08 | 只看该作者
全局:
置顶回复里面的解释很有帮助!谢谢!
更多图片 小图 大图
组图打开中,请稍候......

评分

参与人数 1学分 +1 收起 理由
啊lch + 1

查看全部评分

回复

使用道具 举报

🔗
舒米君 2017-2-4 04:40:24 | 只看该作者
全局:
感谢楼主的test 代码 学到的几点总结一下:
1.override method的时候param和name要一样,但是可以return subclass type,男神让我们用newnode产生新node简直太妙了。
2.最后只要改newnode和remove method,因为call locknode时候会优先调用dynamic type的method,所以所有方法都会调用override的newnode method。
3.我们自己写code的时候,特别写inheritance的时候,用superclass做参数比较好,方便以后subclass各种调动。
继续打卡!
更多图片 小图 大图
组图打开中,请稍候......

评分

参与人数 1学分 +1 收起 理由
啊lch + 1

查看全部评分

回复

使用道具 举报

全局:
好像没人提GRADER的事情,我贴一下我的答案。

  1. The remove() method is able to accept a foreign node while decreasing this
  2. DList's size. This will violate the invariant of the fact that size is the
  3. number of DListNodes. A detailed example is shown in "Troubler.java".
复制代码


Troubler.java
  1. import list.*;

  2. public class Troubler{
  3.         public static void main(String[] args) {
  4.                 DList d1 = new DList();
  5.                 d1.insertBack(new Integer(4));
  6.                 d1.insertBack(new Integer(5));
  7.                 d1.insertBack(new Integer(6));
  8.                 System.out.println(d1.toString() + " Size is: " + d1.length());

  9.                 DListNode dn = d1.back();

  10.                 DList d2 = new DList();
  11.                 d2.insertBack(new Integer(1));
  12.                 d2.insertBack(new Integer(2));
  13.                 d2.insertBack(new Integer(3));
  14.                 System.out.println(d2.toString() + " Size is: " + d2.length());

  15.                 System.out.println("\nPerform remove() on d2 with d1's node.");
  16.                 d2.remove(dn);
  17.                 System.out.println(d2.toString() + " Size is: " + d2.length());
  18.                 System.out.println(d1.toString() + " Size is: " + d1.length());
  19.         }
  20. }
复制代码
更多图片 小图 大图
组图打开中,请稍候......

评分

参与人数 1学分 +1 收起 理由
啊lch + 1

查看全部评分

回复

使用道具 举报

🔗
蔚蔚酱 2017-2-14 15:04:39 | 只看该作者
全局:
1.NewNode那里真的是厉害了。。。不过仔细一想NewNode就是一个ADT,保护内部feilds(DListNode),而且在node类型变化时可以override
2.子类从父类那里得到的是全部(包括field包括method),在强制造型没问题时,调用函数会用dynamic look-up,自动寻找离该obj最近的函数,父类中有同名的函数被overide
3.override时,signature不能变,但返回值的类型可以是signature中类型的子类
更多图片 小图 大图
组图打开中,请稍候......

评分

参与人数 1学分 +1 收起 理由
啊lch + 1

查看全部评分

回复

使用道具 举报

🔗
iyybpatrick 2017-2-18 14:42:28 | 只看该作者
本楼:
全局:
挺简单的...

3FC8EC0C997974F300208A4CA470E638.jpg (233.48 KB, 下载次数: 0)

3FC8EC0C997974F300208A4CA470E638.jpg

评分

参与人数 1学分 +1 收起 理由
啊lch + 1

查看全部评分

回复

使用道具 举报

🔗
splansher 2017-2-19 15:16:31 | 只看该作者
全局:
有一个问题。。我是在sublime写。。然后在cmd那里编译和运行的。。
是不是只能1.一次性写好。2.cmd编译生成class (我试过只能 javac *.java全部一起编译) 3 cmd 运行  呢??

所以如果前面没写好,只能把生成的class全部删除掉。。再编译 运行?

回复

使用道具 举报

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

本版积分规则

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