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

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

 
🔗
SaltSprayAir 2017-6-8 14:45:56 | 只看该作者
全局:
Part III中, LockDListNode里只要写一个表示锁状态的field和一个constructor,LockDList里只要override newNode和remove。成功解决。不知道还有没有更简单的
Part I & Part III Screenshots:
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
savage811 2017-6-10 12:50:29 | 只看该作者
全局:
找了半天的bug,,才发现自己newNode(),,自己把所有DLISTNODE 擅自写成了 LOCKD。。导致没有成功override。。

自己备份一下。关于重写方法 返回值类型的要求: 可以不同,只要是父类返回类型的子类就行了。
因此下面代码也可以成功重写。也就是:返回值类型可以是 DListNode (和DList中定义的完全相同),也可以是 LockDListNode (LockDListNode 是DListNode 的子类,因此也算重写了)
        protected LockDListNode newNode(Object item, DListNode prev, DListNode next) {
                return new LockDListNode(item, prev, next);
    }


但是其中传入的参数(Object item, DListNode prev, DListNode next)  不能改为  LockDListNode ,,这样是不能重写成功的。。。参数不接受DListNode的子类。。。(啊,很奇怪。。。)





回复

使用道具 举报

头像被屏蔽
🔗
老毒物 2017-7-7 18:47:46 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

🔗
yywwd 2017-7-10 20:41:52 | 只看该作者
全局:
project1 part iv好难做不下去了 回来做hw4  我这渣渣慢慢搞懂了再去结束project1吧
先打卡hw4
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
Rayablahblah 2017-7-14 15:09:33 | 只看该作者
全局:
感谢前面各位大佬的无私分享~打卡!






回复

使用道具 举报

🔗
Jasonwang23 2017-7-21 10:58:05 | 只看该作者
全局:
交作业啊,对继承这块还不是深入的理解,要加强啊
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
yagamy 2017-7-30 12:32:06 | 只看该作者
全局:
Part I, DList() constructor那里,我一开始用的:
public DList() {
          head = newNode(Integer.MIN_VALUE, head, head);
          size = 0;
  }


compile的时候一直提醒null pointer,参考了网上的code才知道需要加两行:
head.prev = head;
head.next = head;

这里我就很疑惑了,在newNode(Integer.MIN_VALUE, head, head)里不是已经指定prev和next都是head了吗?为什么还要写head.prev 和head.next呢? 有木有大神解答一下。

看到楼上已经有人回答过了:因为head = newNode(Integer.MIN_VALUE, head, head);在执行的时候是从右到左,先create一个newNode,prev和next都是head,但head此时还没有被定义,所以其实prev和next指向null;

part III完全把我弄糊涂了

LockDListNode(Object i, DListNode p, DListNode n) {
                super(i, p, n);
                locked = false;
        }
不能写成
LockDListNode(Object i, LockDListNode p, LockDListNode n) {
                super(i, p, n);
                locked = false;
        }

还有:
public class LockDList extends DList {
        
        protected LockDListNode newNode(Object item, DListNode prev, DListNode next) {
                return new LockDListNode(item, prev, next);
    }

不能写成:
public class LockDList extends DList {
        
        protected LockDListNode newNode(Object item, LockDListNode prev, LockDListNode next) {
                return new LockDListNode(item, prev, next);
    }

虽然还是不太明白为什么……





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

使用道具 举报

本楼:
全局:
homework 4
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
sherry2017 2017-8-10 02:00:12 | 只看该作者
全局:
本帖最后由 sherry2017 于 2017-8-10 02:04 编辑

homework4交作业啦~~~今天要把homework5写完,加油加油图片描述写反了
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
leonYuuuu 2017-8-11 19:17:25 | 只看该作者
全局:
做完之后深刻了解了继承的内涵,父级子级的真正用处,newNode()的覆盖的意义,使OOP的感念更加明确,使通用类不需要修改代码即可复用。但其实对访问权限修饰符无感,感觉只要是dataStructure就用除Public以外的,如package protected/ protected / private,为防修改,在package 内根据需要提升变量方法权限。
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

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

本版积分规则

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