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

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

 
全局:
完成了LAB3 过来打卡 就不po图了 反正也不加分 嘻嘻
回复

使用道具 举报

🔗
psychewww 2017-9-15 07:07:36 | 只看该作者
全局:


引入 tail之后代码好像变短了~
回复

使用道具 举报

🔗
ychen628 2017-9-15 08:15:40 | 只看该作者
全局:
历时1h,打卡打卡

Screen Shot 2017-09-15 at 9.45.15 AM.png (45.25 KB, 下载次数: 1)

Screen Shot 2017-09-15 at 9.45.15 AM.png
回复

使用道具 举报

🔗
wystefan 2017-11-4 05:32:21 | 只看该作者
全局:

回复

使用道具 举报

🔗
shi198 2017-11-16 19:25:17 | 只看该作者
全局:
终于到linkedlist,感觉自己基础还是太弱,还是花了不少时间

回复

使用道具 举报

🔗
dachou 2017-12-8 20:16:08 | 只看该作者
全局:
无tail的时候,insertFront不需要考虑链表是不是为空,因为无论是不是空链表,head都需要指向新的Node。链表里的head和tail都只是node形式的声称的变量而已。当链表只有一个NODE的时候,head=node,tail=node。有tail的时候,当时空链表时,tail=null,head=null,向前插入node之后,tail也需要指向这个node。
无tail和有tail时候,insertEnd都需要找到最后一个NODE,故需要考虑tail是否为null。当tail==null时候,链表为空,那么向后插入和向前插入都是一样的,直接用insertFront就可以了,为了reusing code。 当tail !=null,就是tail.next = new SListNode(obj); 然后更新 tail 就好。

Snip20171208_13.png (34.67 KB, 下载次数: 3)

Snip20171208_13.png
回复

使用道具 举报

🔗
keepgoing123 2017-12-19 15:24:38 | 只看该作者
全局:
lab3~~~参考了前面大大们的思路

lab3-61B.pdf

152.11 KB, 下载次数: 2, 下载积分: 大米 -1 颗

回复

使用道具 举报

🔗
仙道彰 2017-12-25 11:05:51 | 只看该作者
全局:
研究了一个上午,参考了别人的代码才大概搞懂了,根本没想到还有那么多的判断情况……不断学习中,fighting!!!

TIM图片20171225110459.png (33.96 KB, 下载次数: 1)

TIM图片20171225110459.png

评分

参与人数 2大米 +10 收起 理由
wangguoxia + 5 给你点个赞!
LouisWang + 5 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
kaiwhu 2018-1-20 06:27:53 | 只看该作者
全局:
Env: Ubuntu & JDK 9.0.1


编译提示 Note: SList.java uses or overrides a deprecated API.
具体deprecated的详细情况如下:


原因为:从JDK9开始,Boxed Primitive Constructors are Deprecated.
具体参见:https://bugs.openjdk.java.net/browse/JDK-8176335
回复

使用道具 举报

🔗
greatlim 2018-2-6 17:04:15 | 只看该作者
全局:


  1. private SListNode head;
  2. private SListNode tail;
  3. private int size;

  4. /**
  5. *  SList() constructs an empty list.
  6. **/

  7. public SList() {
  8.   size = 0;
  9.   tail = null;
  10.   head = null;
  11. }
  12. public void insertFront(Object obj) {
  13.   if (head == null) {
  14.     head = new SListNode(obj);
  15.     tail = head;
  16.   } else {
  17.     head = new SListNode(obj, head);
  18.   }
  19.   size++;
  20. }

  21. /**
  22. *  insertEnd() inserts item "obj" at the end of this list.
  23. *  @param obj the item to be inserted.
  24. **/

  25. public void insertEnd(Object obj) {
  26.   /*
  27.   if (head == null) {
  28.     head = new SListNode(obj);
  29.   } else {
  30.     SListNode node = head;
  31.     while (node.next != null) {
  32.       node = node.next;
  33.     }
  34.     node.next = new SListNode(obj);
  35.   }
  36.   size++;
  37.   */
  38.   if (head == null) {
  39.     head = new SListNode(obj);
  40.     tail = head;
  41.   } else {
  42.     tail.next = new SListNode(obj);
  43.     tail = tail.next;
  44.   }
  45.   size++;
  46. }
复制代码


总结下:tail和head都是标记的作用,还有要考虑特殊情况~
回复

使用道具 举报

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

本版积分规则

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