正在加载图片...
ELSE{i=i+1(modm),GOTO②}/*P(i)为表的第i个位置*/ 重复执行上述算法n次,即可将n项数据登入表内。 B)查表算法: ①i=H(K),/K为欲从HASH表中查找的项T的关键字*/ ②IFP(i)=empty THEN Print failure,RETURN ELSE IF P(i)=T(K) THEN (GET P(i);RETURN) ELSE {i=i+1(modm):GOTO} /查表时,要求n<m*/ 2.链溢出HASH方法 表项格式设计为,DATA NEXT POINTER. 除了准备有1到m的m个连续编址的 存贮单位外,还需另辟一个供溢出拉链用的区域,并组织成单向链表的形式,其链头以指 针FREE指示。首先将l到m个存贮位置全部清零,各NEXT域置nuI1'。 A)造表算法: ①i=H(K)/K为欲登入项T的关键字,i为一指针/ ②IFi-→NEXT=nuII'THEN .(i-DATA=T(K); i-+NEXT=full',/*ful'为链的结束标志◆/ RETURN}/i+NEXT为i指针所指项的NEXT域,i+DATA一 DATA域/ ③1)FREE+DATA=T(K), 2)TEMP=FREE,/TEMP为一工作指针*/ 3)FREE-FREE→NEXT, 4)TEMP-NEXT=i-NEXT 5)i-NEXT=TEMP; 6)RETURN/*③完成在溢出链上扦入一项的工作/ 以上过程执行n次即造好了一张“外链滥出”HASH表。当n≤m时,显然,造完表时, HASH表的1到m个连续位置上将有若干空白,故可将拉链到滥出区的项,组织到这些空 白位置。这样鉴理后的表叫“内链褴出”HASH表。很明显,内链溢出HASH表较外链 溢出HASH表节约存贮。 B)查表算法, ①i=H(K)/K为欲查项的关键字/ ②IFi-→NEXT='nulI'THEN Print failure;RETURN ③IFi+DATA=T(K)THEN {GETi→DATA,RETURN} ELSE (i=i-NEXT; 184一 ② 为表的第 个位置 重 复执行上述算法 次 , 即可将 项数据登入表内 。 查表算法 ① , 为欲从 表中查找的项 的关键字 ② 二 , , , ② 查表时 , 要求 。 链 溢出 方法 表项 格式设计为 , ” 叫 “ ‘“ “ 卜除了准备有‘到 的 个连续编址 的 存贮单位外 , 还需另辟一 个供溢 出拉链用 的区域 , 并组织成单 向链表的形式 , 其链头 以指 针 指示 。 首先将 到 个存贮位置全部清零 , 各 域置 、 尹 。 造表算法 ① , 为欲登入项 的关键字 , 为一 指针 ② , ‘ 尹 , 多 , 、 ‘ , 、 ‘ 为链的结束标志 , 为 指针所指项的 域, , 一 域 ③ ‘ , , 为一 工作指针 , , , , , , ⑧完成在溢 出链上扦入一项 的工作 以上 过程执行 次即造好 了一张 “ 外链溢 出” 表 。 当 时 , 显然 , 造 完 表 时 , 表的 到 个连续位置上将有若千 空 白 , 故可将拉链到溢 出区 的项 , 组织到这 些 空 白位置 。 这样整 理后 的表 叫 “ 内链滋 出” 表 。 很 明显 , 内链溢 出 表较 外 链 溢 出 表节约存贮 。 查 表算法 , ① 为欲查项的关键字 ② , “ , 、 , , ③ , , ,
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有