作业帮 > 综合 > 作业

数据结构 为关键字序列{Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec}

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/06 16:05:15
数据结构 为关键字序列{Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec}构造链地址法的散列表
我不是太清楚散列表的长度是否该为26!然后首字母相同的朝后填!
就是类似此种!只是换成了关键字,我不清楚表的长度是多少!
显然不能是26啊,一般来讲散列表的长度(在c中)确定之后就不改变了,所以会多留出若干位的
所以你最起码得27位.否则要是出现{z,z,a,b,c,d}这种多悲剧啊,明明只有一个冲突,但是因为你是线性再探,所以就会占用其他人的地方导致各种冲突.
再问: 但是首字母只有八种,是不是应该是10啊!我问别人说哈希表的长度是10
再答: 这个,之所以要做散列表,是因为我们在录入数据之前不知道会录入怎样的数据,为了能够快速存取而使用散列表技术。 但你现在的情况是只有这12种,而且还是确定的,本来这种情况是不需要用散列表的,但如果非得用散列表(比如作业要求),只能当作未知的处理了,要不多少感觉没意义了。。。 刚刚仔细看了你的图,发现是用链地址法,那样的话26就可以了(之前没仔细读,望谅解) 如果老师非得强调未出现的字母不用分配空间的话,你就按它的意思去办吧。。。。 否则一定是26的,因为用散列表的时候你不会知道到底会有怎样的数据加进来的
再问: 我问了老师,她的意思是12,因为知道了储存的数据个数是12,当然你说的26其实也不错!如果尽可能减少存储空间的话,折中一下,12即可。也就是当,题没注明散列表长度的话,就按关键字个数来定。