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

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

 
🔗
moow77 2015-8-10 10:31:52 | 只看该作者
全局:
越後面的homework越好玩了
上傳homework 6的執行結果
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

全局:
还是写了大半天..
对照教材上的思路,linked-list包引用的hw2的代码,挺多细节需要注意
比如import list后,还得把要创建的类(SListNode)的constructor声明为public才行
hashcod就用的lecture里的方法,效果似乎也挺好的
测试时增加了把每个board的经过compressed后的hashvalue显示了出来的部分,分别测试100和200的case。


回复

使用道具 举报

全局:
用了两种compression function 图1为hashcode % N 图2为((a * hashcode + b) % p) % N 其中p为maxPrime(10000*N) 随便设的= = 然而感觉并没有优化多少 大概是simpleboard的hashcode写得太渣。。。 然而已经吭哧吭哧了= =
有木有大神分享一下自己的hashcode
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
Believers 2015-12-6 14:28:15 | 只看该作者
全局:
最后测试代码部分感觉应该还要再加remove(), find()的测试,但是懒得写了……
hashCode()部分在readme中没有看懂啊,求大神解释
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
lqwandyy 2015-12-10 10:18:37 | 只看该作者
全局:
run:
[1][0][3][0][1][1][0][0][1][0][0][0][2][3][1][1][0][0][2][1][0][1][0][0][0][0][1][1][1][0][1][0][1][3][1][0][0][0][0][1][1][1][0][2][0][1][1][0][0][1][0][0][0][1][1][1][0][0][2][0][3][0][1][1][0][0][0][0][0][0][1][0][1][0][0][1][1][0][0][0][0][0][0][1][2][0][1][0][2][1][0][0][2][1][0][2][0][1][2][1][0][0][0][0][2][2][1][0][0][0][1][0][1][0][0][2][0][1][2][1][2][3][1][1][0][2][0][1][1][0][0][3][1][2][2][1][2]
Expected collisions: 36.60323412732292/100
Report collisions: 30/100
成功构建 (总时间: 0 秒)

run:
[2][1][1][0][2][3][1][0][1][0][2][0][0][0][0][1][1][1][1][0][1][1][3][1][2][2][1][0][1][1][1][1][1][1][0][0][1][1][0][0][1][1][2][1][1][0][2][0][0][1][0][1][1][0][1][2][0][0][0][0][1][0][2][0][0][1][0][0][0][1][2][0][1][2][1][0][1][2][0][1][0][1][2][1][0][1][1][0][0][0][0][2][0][0][1][2][1][0][0][0][2][0][1][0][2][0][0][0][0][2][2][0][0][1][0][1][0][2][0][0][1][1][1][2][0][0][0][0][0][1][0][2][0][0][0][0][0][2][2][2][0][0][0][1][0][1][1][1][1][0][0][0][2][0][1][0][1][1][0][0][1][3][1][1][1][0][1][1][1][0][1][0][0][2][0][1][0][2][0][0][0][1][0][1][0][1][0][0][0][1][2][0][0][1][2][1][1][1][0][3][0][1][0][0][1][4][0][0][0][2][1][2][0][1][1][1][0][0][1][0][1][1][0][4][1][0][1][1][1][0][0][1][4][0][0][0][0][0][0][0][0][2][1][0][0][2][1][0][1][0][1][0][1][0][2][2][1][1][1][0][1][1][0][1][1][3][1][0][1]
Expected collisions: 73.3915643452334/200
Report collisions: 55/200
成功构建 (总时间: 0 秒)
回复

使用道具 举报

全局:
写了好久终于写出来了!
贡献一下测试HashTableChained的代码吧。
  1. System.out.println("=====================size, isEmpty=========================");
  2.         System.out.println("table's size is: " + table.size());
  3.         System.out.println("table is Empty: " + table.isEmpty());
  4.        
  5.         System.out.println("=====================insert================================");
  6.         table.insert("1", "The first one");
  7.         table.insert("2", "The second one");
  8.         table.insert("3", "The third one");
  9.         table.insert("what", "nani?");
  10.         table.insert("the","Eh-heng");
  11.         table.insert("hell!","impolite");
  12.         System.out.println("table's size is: " + table.size());
  13.         System.out.println("table is Empty: " + table.isEmpty());
  14.         try{
  15.                 String [] output = table.String();
  16.                 for(String s : output){
  17.                         if(s != null)        System.out.println(s);
  18.                 }
  19.         }
  20.         catch(InvalidNodeException ine){
  21.                 System.err.println(ine);
  22.         }
  23.        
  24.         System.out.println("====================find, remove===========================");
  25.         Entry e1 = table.find("6");
  26.         if(e1 != null)
  27.                 System.out.println("The item found is: [ " + e1.toString() + " ]");
  28.         else
  29.                 System.out.println("The is no such item in the table to be found.");
  30.        
  31.         Entry e2 = table.remove("hell!");
  32.         if(e2 != null)
  33.                 System.out.println("The item deleted is: [ " + e2.toString() + " ]");
  34.         else
  35.                 System.out.println("The is no such item in the table to be deleted.");
  36.        
  37.         try{
  38.                 String [] output = table.String();
  39.                 for(String s : output){
  40.                         if(s != null)        System.out.println(s);
  41.                 }
  42.         }
  43.         catch(InvalidNodeException ine){
  44.                 System.err.println(ine);
  45.         }
  46.        
  47.         System.out.println("=====================makeEmpty=============================");
  48.         table.makeEmpty();
  49.         try{
  50.                 String [] output = table.String();
  51.                 for(String s : output){
  52.                         if(s != null)        System.out.println(s);
  53.                 }
  54.         }
  55.         catch(InvalidNodeException ine){
  56.                 System.err.println(ine);
  57.         }
  58.         */
复制代码
更多图片 小图 大图
组图打开中,请稍候......

评分

参与人数 1大米 +25 学分 +1 收起 理由
DamienPooh + 25 + 1

查看全部评分

回复

使用道具 举报

🔗
gocong 2016-1-15 09:06:09 | 只看该作者

ia

全局:
本帖最后由 gocong 于 2016-1-15 11:09 编辑
俘虏你的心 发表于 2016-1-6 11:34
写了好久终于写出来了!
贡献一下测试HashTableChained的代码吧。

问一下,那个expected number of collisions 是怎么算的,是需要自己写一个吗,算法是啥。。。。 在tutorial那。。。 好吧我看见了
回复

使用道具 举报

🔗
mingruiyrh 2016-1-17 05:49:02 | 只看该作者
全局:
交作业~~~第一张是100个board, 第二张是200个board。
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
hypsm 2016-1-30 08:41:06 | 只看该作者
全局:
本帖最后由 hypsm 于 2016-1-30 08:44 编辑
mingruiyrh 发表于 2016-1-17 05:49
交作业~~~第一张是100个board, 第二张是200个board。

不知道你们是怎么存的hashTable呢? 我是把list变成了泛型, 然后哈希表就是一个泛型list的数组
hashTable = (List<Entry>[]) new Object[capacity];
可是这样初始化的时候就会报错... 好纠结,一边是泛型不能直接创建数组,另一边list又不是Object的子类...
求指点
还是说你们把list的item直接改成了Entry?
回复

使用道具 举报

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

本版积分规则

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