数据结构查找作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.设有序表为(1、23、34、55、56、57、77、87、99)请分别画出对给定值23,56,98进行折半查找的过程。(并注明每次循环的各参数变量的结果)23的查找过程如下(其中括号表示当前查找区间,圆括号表示当前比较的关键字)

下标: 1 2 3 4 5 6 7 8 9

第一次比较:[ 1 23 34 55(56)57 77 87 99]

low=1

high=9

mid=5

第二次比较:[ 1(23)34 55] 56 57 77 87 99]

low=1

high=4

mid=2

56的查找过程如下(其中括号表示当前查找区间,圆括号表示当前比较的关键字)

下标: 1 2 3 4 5 6 7 8 9

第一次比较:[ 1 23 34 55(56)57 77 87 99]

low=1

high=9

mid=5

98的查找过程如下(其中括号表示当前查找区间,圆括号表示当前比较的关键字)

下标: 1 2 3 4 5 6 7 8 9

第一次比较:[ 1 23 34 55(56)57 77 87 99]

low=1

high=9

mid=5

第二次比较: 1 23 34 55 56 [57 (77) 87 99]

low=6

high=9

mid=7

第三次比较: 1 23 34 55 56 57 77[(87) 99]

low=8

high=9

mid=8

第四次比较: 1 23 34 55 56 57 77 87[(99)]

low=9

high=9

mid=9

第五次比较: 1 23 34 55 56 57 77 87 99

low=9

high=8

low>high 查找不成功。

2

设有一组关键字{19,01,23,14,55,20,84,27,68,11,10,77},采用哈希函数

H(key)=key % 13,采用开放地址法(开放定址法)的二次探测再散列方法解决冲突,试在0~18的散列地址空间中对该关键字序列构造哈希表。

解:依题意,n=19,二次探测再散列的下一地址计算公式为:其计算如下:

H(19)=19 % 13 =6 H(01)=01 % 13 =1 H(23)=23 % 13 =10 H(14)=14 % 13

=1(冲突) H(14)=(1+1*1) % 19 =2 H(55)=55 % 13 =3 H(20)=20 % 13 =7 H(84)=84 % 13 =6(冲突) H(84)=(6 + 1*1) % 19 =7(仍冲突) H(84)=(6 -

1*1) % 19 =5 H(27)=27 % 13 =1(冲突) H(27)=(1+1*1) % 19 =2(冲突) H(27)=(1-1*1) % 19 =0 H(68)=68 %13 =3(冲突) H(68)=(3+1*1) %19 =4 H(11)=11 % 13 =11 H(10)=10 % 13 =10(冲突) H(10)=(10+1*1) % 19 =11(仍

冲突) H(10)=(10-1*1)%19=9 H(77)=77 %13 =12 因此:各关键字的记录对应的地址分配如下:addr(27) = 0addr(01) = 1addr(14)

= 2addr(55) = 3addr(68) = 4addr(84) = 5addr(19) = 6addr(20) = 7addr(10)

= 9addr(23) = 10addr(11) = 11addr(77) = 12其他地址为空。

相关文档
最新文档