首页 > 学历类考试> 自考公共课
题目内容 (请给出正确答案)
[主观题]

以下算法实现若开散列表HP中存在键值为K的结点,则将其删除。请分析程序,并在______上填充合适的语

句。

void delete_openhash(keytype K,openhash HP)

{ i=H(K);

if(HP[i]==NULL)return; /*空表则退出*/

p=HV[i];

if(p—>key==K){______=p—>next;free(p);return;)

/*表首结点为待删除结点时的删除*/

while(p—>next!=NULL) /*其他情况下的删除*/

{ q=p;p=p—>next;

if(p—>key==K){______=p—>next;delete(p);return;)

}

}

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“以下算法实现若开散列表HP中存在键值为K的结点,则将其删除。…”相关的问题
第1题
以下算法实现若开散列表HP中无键值为K的结点,则插入一个这样的结点。请分析程序,并在______上填充
合适的语句。

void insert_openhash(keytype K,openhash HP)

{ if(research_openhash(K,HP)==NULL)

{ i=H(K);

q=malloc(size);q—>key=______; /*生成新结点*/

______=HP[i];HP[i]=______; /*前插法链入新结点*/

}

}

点击查看答案
第2题
以下算法在开散列表HP中查找键值等于K的结点,成功时返回指向该点的指针,不成功时返回空指针。请分
析程序,并在______上填充合适的语句。

pointer research_openhash(keytype K,openhash HP)

{ i=H(K); /*计算K的散列地址*/

p=HP[i]; /*i的同义词子表表头指针传给P*/

while(______)p=p—>next; /*未达到表尾且未找到时,继续扫描*/

______;

}

点击查看答案
第3题
以下算法在有序表R中用二分查找法查找键值等于K的元素,请分析程序,并在______上填充合适的语句。

int binsearch(sqtable R,keytype K)

{ low=l;hig=R.n;/*置查找区间初值。low,hig分别标记查找区间的下、上界*/

while(low<=hig)

{ mid=(low+hig)/2;

switch

{ case K==R.item[i].key:return(mid); /*找到,返回位置mid*/

case K<R.item[i].key:______.break;/*缩小区间*/

case K>R.item[i].key:______;break/*缩小区间*/

}

}

return(0); /*若区间长度已为0但仍不成功,则返回0,表示查找不成功*/

}

点击查看答案
第4题
假定有3000个记录需要存储到一个散列文件中,文件中每个页块可以存储5个记录,若散列函数为H(K)=K%73并用开散列方法处理冲突,则每个桶所对应的单链表的平均长度至少为()。
假定有3000个记录需要存储到一个散列文件中,文件中每个页块可以存储5个记录,若散列函数为H(K)=K%73并用开散列方法处理冲突,则每个桶所对应的单链表的平均长度至少为()。

A、1

B、5

C、9

D、40

点击查看答案
第5题
已知一个线性表为(38,25,74,63,52,48),假定采用H(K)=K mod 7计算散列地址进行散列存储,若利用线

已知一个线性表为(38,25,74,63,52,48),假定采用H(K)=K mod 7计算散列地址进行散列存储,若利用线性探测的开放定址法处理冲突,则在该散列表上进行查找的平均查找长度为();若利用链地址法处理冲突,则在该散列上进行查找的平均查找长度为()。

A.1.5,1

B.1.7,3/2

C.2,4/3

D.2.3,7/6

点击查看答案
第6题
考查教材9.4.1节介绍的基本桶排序算法。若采用习题[9-11]中的技巧,可将其中散列表初始化所需的时间从O(M)优化至常数。a)算法的整体时间复杂度,是否因此亦有所改进?b)空间方面,需要付出多大的代价?是否会影响到渐进的空间复杂度?

点击查看答案
第7题
以下算法在指针T所指的二叉排序树上的查找键值等于K的结点。成功时回送指向该结点的指针;否则回送
空指针。请分析程序,并在______上填充合适的语句。

bitreptr search_bst(bitreptr T,keytype K)

{ if(T==NULL)return(NULL);

else switch

{ case T—>key==K:______;

case______: return(search_bst(T—>lchild,K));

case______: return(search_bst(T—>rchild,K));

}

}

点击查看答案
第8题
编写一个算法,以字典顺序输出散列表中的所有标识符。设散列函数为hash(x)=x中的第一个字符,采用线性探查法来解决冲突。试估计该算法所需的时间。
编写一个算法,以字典顺序输出散列表中的所有标识符。设散列函数为hash(x)=x中的第一个字符,采用线性探查法来解决冲突。试估计该算法所需的时间。

点击查看答案
第9题
R2-8对于foriins:语句,以下说法不正确的是()

A.如果s为集合,则该循环执行时,i取值会对集合中的每个元素进行遍历

B.如果s为字典,则该循环执行时,i取值会对字典中的每个键值对进行遍历

C.如果s为字符串,则该循环执行时,i取值会对字符串中的每个字符进行遍历

D.如果s为列表,则该循环执行时,i取值会对列表中的每个元素进行遍历

点击查看答案
第10题
若允许关键码雷同的词条并存,本章实现散列表结构的示例代码应该如何修改?

点击查看答案
退出 登录/注册
发送账号至手机
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改