📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
楼主: gougou9901
跳转到指定楼层
上一主题 下一主题
收起左侧

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

 
🔗
tonyzhang_1995 2016-12-17 21:38:49 | 只看该作者
全局:
时隔许久继续复习数据结构!求加分!

屏幕快照 2016-12-17 下午9.37.33.png (61.57 KB, 下载次数: 0)

屏幕快照 2016-12-17 下午9.37.33.png

评分

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

查看全部评分

回复

使用道具 举报

🔗
duruin 2016-12-27 14:14:35 | 只看该作者
全局:
第六次作业出炉


评分

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

查看全部评分

回复

使用道具 举报

🔗
cxw111 2017-1-6 22:23:24 | 只看该作者
全局:
终于搞出来了
1.hashcode压缩后 我有几次就成了负的 然后数组下标就报错了  
2. 一开始不理解那个hashcode的方法  看了前面网友回答 知道了8x8的数组 从[0,0]到[7,7]一共64个数  正好只有0,1,2的数值 所以可以看成011221021021021....一共64个 一int就可能变成负的了 这得看compFunction()了。。
3这次作业很好  发现还是做作业能巩固知识


评分

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

查看全部评分

回复

使用道具 举报

🔗
panyoumeiyi 2017-1-14 06:39:46 | 只看该作者
全局:
本帖最后由 panyoumeiyi 于 2017-1-14 06:43 编辑

实在不知道怎么测试得出前面的结果 复制了贴出测试 代码 可是有错 不会改 参考了 http://gaotx.com/cs61b/ 的代码 来测试了下 也是remove那个地方 报null的错 于是把它 //了
不过总的来说 思路是真懂了 也知道怎么实现 目的达到了 这些地方就先不纠结了 毕竟还要赶紧结束算法的学习 然后刷题   不过还是希望有大神能够指点一二 好像得到前面那些个模样的结果 可是。。。。。。 臣妾做不到啊

后人或者前人们  如果你们输出了前面那种的答案  又刚好看到此喽  可否私信你的代码供我个人学习一下?!  谢谢谢谢!!!!!

回复

使用道具 举报

🔗
wzhbtbt 2017-1-14 17:58:49 | 只看该作者
全局:
考完期末继续回来做这个作业。
几天不看就生疏了。打打游戏写写代码花了两天。。
更多图片 小图 大图
组图打开中,请稍候......

评分

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

查看全部评分

回复

使用道具 举报

🔗
xyh110191 2017-1-25 08:48:49 | 只看该作者
全局:
Hw6做的还算顺利,光看lecture对hash table理解的还是有点模糊,边做作业边回过头再看lecture之后知识点确实巩固了很多,挺有意思的。
更多图片 小图 大图
组图打开中,请稍候......

评分

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

查看全部评分

回复

使用道具 举报

🔗
csssssss 2017-1-25 10:12:03 | 只看该作者
全局:
没有输出小方格,这次感觉参考了下github,可能自己一开始并没有特别理解如何使用linked list去实现hashtable和hashtable内的chained list。 后来看了下别人的慢慢懂了。

8FTK$XLZUAQ8G{_7@SQZ]H7.png (11.3 KB, 下载次数: 0)

8FTK$XLZUAQ8G{_7@SQZ]H7.png

评分

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

查看全部评分

回复

使用道具 举报

全局:
造福一下后来人。我的compFunction
  1.   int compFunction(int code) {
  2.     // Replace the following line with your solution.
  3.     int a = 7;
  4.     int b = 11;
  5.     int p = 805306457;

  6.     int hashCode = (a * code + b) % p;
  7.     if(hashCode < 0) {hashCode += p;}
  8.     hashCode = hashCode % bucketNum;

  9.     return hashCode;
  10.   }
复制代码


测试insert,find和remove的代码
  1.     //Test hashTable methods
  2.     table = new HashTableChained(numBoards);
  3.     System.out.println("*************** size, isEmpty ***************");
  4.     System.out.println("table's size is: " + table.size());
  5.     System.out.println("table is Empty: " + table.isEmpty());
  6.    
  7.     System.out.println("*************** insert ***************");
  8.     table.insert("1", "The first one");
  9.     table.insert("2", "The second one");
  10.     table.insert("3", "The third one");
  11.     table.insert("4", "The fourth one");
  12.     table.insert("5","The fifth one");
  13.     System.out.println("table's size is: " + table.size());
  14.     System.out.println("table is Empty: " + table.isEmpty());
  15.     table.printBucketContent();
  16.    
  17.     System.out.println("*************** find, remove ***************");
  18.     Entry e1 = table.find("1");
  19.     if(e1 == null)
  20.       System.err.println("find() has a problem.");
  21.     else
  22.       System.out.println("Found " + e1);

  23.     Entry e2 = table.find("2");
  24.     if(e2 == null)
  25.       System.err.println("find() has a problem.");
  26.     else
  27.       System.out.println("Found " + e2);

  28.     Entry e3 = table.find("10");
  29.     if(e3 != null)
  30.       System.err.println("find() has a problem.");
  31.     else
  32.       System.out.println("Cannot find 10");
  33.    
  34.     Entry e4 = table.remove("10");
  35.     if(e4 != null)
  36.       System.err.println("remove() has a problem.");
  37.     else
  38.       System.out.println("10 cannot be deleted.");

  39.     Entry e5 = table.remove("4");
  40.     if(e5 == null) {
  41.       System.err.println("remove() has a problem");
  42.     }
  43.     else {
  44.       System.out.println("Deleted is " + e5);
  45.     }
  46.     table.printBucketContent();
  47.    
  48.     System.out.println("*************** makeEmpty ***************");
  49.     table.makeEmpty();
  50.     table.printBucketNum();
复制代码
更多图片 小图 大图
组图打开中,请稍候......

评分

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

查看全部评分

回复

使用道具 举报

🔗
舒米君 2017-2-25 05:48:50 | 只看该作者
全局:
做的好艰难啊~!!!打卡坚持

Screen Shot 2017-02-24 at 4.47.09 PM.png (125.22 KB, 下载次数: 0)

Screen Shot 2017-02-24 at 4.47.09 PM.png

评分

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

查看全部评分

回复

使用道具 举报

🔗
蔚蔚酱 2017-2-26 22:28:52 | 只看该作者
全局:
本帖最后由 蔚蔚酱 于 2017-2-26 23:03 编辑

写了一天,看了楼里的而一些提示总算是做出来了,不过还是有好几个地方不明白:
(1)hashdcode为啥h(i) = ((ai + b) mod p) mod N效果最好?前面某位大神的回答感觉很有道理。
(2)对board的处理,看成64位3进制数,然后用int去掉超过2^32以上的部分,不明白为什么可以直接让他自由溢出??这样不是相当于砍掉了前面的很多位吗,也就是说不同的board如果前好多位都不同的话得到的hashcode还是相等的?
(3)为啥要用int截取,为啥readme里说不能用float型?看前面说会产生乘法溢出。。。不是很理解乘法为何会溢出???以及跟float有啥关系?

hw6.PNG (22.48 KB, 下载次数: 0)

hw6.PNG
回复

使用道具 举报

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

本版积分规则

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