查看: 37246| 回复: 173
跳转到指定楼层
上一主题 下一主题
收起左侧

Berkeley CS 61B Data Structures(in Java) Lab4 讨论帖

 
全局:
公开课
学校名称: Berkeley
Unit号: 1
开课时间: 2014-05-30
课程全名: CS 61B Data Structures(in Java)
平台: 其他

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 jaly50 于 2014-5-31 00:18 编辑

Lab不加分
但大家还是可以上传作业输出 保持进度
或者在相应lab贴里进行相关知识点的讨论

我看的是06年的视频
所以开始做06年的作业
看了一下  这次作业 14年和06年的要求是一样的
是关于双链表的作业
大家看完第8课视频就可以写了

作业链接:   http://www.cs.berkeley.edu/~jrs/61bf06/lab/lab4/






相关链接:      

       【公开课讨论+加分总贴】:UC Berkeley CS 61B Data Structures(in Java)
       【课程网站】:http://www.cs.berkeley.edu/~jrs/61b/
       【视频网站】:【Youtube】【Youku

        【教材】:Head First Java 【中文版】【英文版
                      Data Structures and Algorithms in Java, 5th Edition. 【英文版

评分

参与人数 1大米 +3 收起 理由
小小溪 + 3 感谢分享!

查看全部评分


上一篇:想問看看 Berkeley CS 61B(2014) 和 Stanford CS106B
下一篇:Berkeley CS 61B Data Structures(in Java) Lab3 讨论帖
推荐
zhuyingcau 2016-7-8 10:20:55 | 只看该作者
全局:
lab 4

似乎有sentinel比无sentinel的好处就是,insert的时候不用讨论链表为空的情况,remove的时候不用讨论链表为1的情况,因为有sentinel的链表可以将head的prev和next指向head本尊。但是remove还是需要讨论链表是否为空,因为不能把head删掉啊~





no sentinel:




sentinel:



回复

使用道具 举报

推荐
greatlim 2018-2-9 17:15:20 | 只看该作者
全局:
  1. /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/java "-javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=52029:/Applications/IntelliJ IDEA CE.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Users/Lim/@inbox/cs61b14/lab/lab4/out/production/lab4 DList1
  2. ### TESTING insertFront ###
  3. Empty list is [  ]

  4. Inserting 9 at front.
  5. List with 9 is [  9  ]

  6. Inserting 8 at front.
  7. List with 8 and 9 is [  8  9  ]


  8. ### TESTING removeFront ###
  9. List with 1 and 2 is [  1  2  ]

  10. Removing front node.
  11. List with 2 is [  2  ]

  12. Removing front node.
  13. Empty list is [  ]

  14. Removing front node.
  15. Empty list is [  ]

  16. Process finished with exit code 0
复制代码
  1. /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/java "-javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=51938:/Applications/IntelliJ IDEA CE.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Users/Lim/@inbox/cs61b14/lab/lab4/out/production/lab4 DList2
  2. ### TESTING insertFront ###
  3. Empty list is [  ]

  4. Inserting 9 at front.
  5. List with 9 is [  9  ]

  6. Inserting 8 at front.
  7. List with 8 and 9 is [  8  9  ]


  8. ### TESTING removeFront ###
  9. List with 1 and 2 is [  1  2  ]

  10. List with 2 is [  2  ]

  11. Empty list is [  ]

  12. Empty list is [  ]

  13. Process finished with exit code 0
复制代码

总结下:
(2)Dlist1的remove需要考虑size==1的情况,移除唯一的元素后,head = null, 这时候 head.prev 是不存在的,因为null既不是对象也不是一种类型,它仅是一种特殊的值。同时也必须对tail进行讨论,使得tail = null,不然java可能不能回收这个空间。
(1)Dlist2有了sentinel后可以避免上述的讨论
回复

使用道具 举报

推荐
voiding 2014-9-6 02:24:37 | 只看该作者
全局:
总结 下来就是 在 singly linked list里面如果要 remove,需要考虑size =1 的时候的特殊情况,在doubly linked list里面就不需要考虑这个情况。

lab4.jpg (48.83 KB, 下载次数: 8)

lab4.jpg
回复

使用道具 举报

🔗
gloria_wwj 2014-6-14 09:46:57 | 只看该作者
本楼:
全局:
字数字数!!
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
galaxy2 2014-6-22 01:46:52 | 只看该作者
全局:
lab4.png
               
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

全局:
终于做完了!!


回复

使用道具 举报

🔗
朝仓音梦 2014-7-3 08:45:52 | 只看该作者
全局:
SList s=new TailList();
s.insertEnd(obj);
为啥就不能换成object了,insertEnd()不是用的tailList的method么?
回复

使用道具 举报

🔗
朝仓音梦 2014-7-3 08:48:48 | 只看该作者
全局:
所以是compiletime就不会通过,ok明白了
回复

使用道具 举报

🔗
ginrain 2014-7-3 21:34:50 | 只看该作者
全局:
完成啦~~~ LAB4
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
朝仓音梦 2014-7-4 04:44:24 | 只看该作者
全局:
LAB4的solution
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
南方的狼 2014-8-9 16:39:20 | 只看该作者
全局:
晒一下答案~
希望自己能坚持下去

回复

使用道具 举报

🔗
awksu 2014-8-21 15:59:34 | 只看该作者
全局:
结果



但是对那个Insertfront size == 0 的代码不够简练。。。
回复

使用道具 举报

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

本版积分规则

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