首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
某个任务的数据模型可以抽象为给定的k个集合:S1,S2,…,Sk。其中Si(1≤i≤k中的元素个数不定。在处理数据过程中将会涉及元素的查找和新元素的插入两种操作,查找和插入时用一个二元组(i,x)来规定一个元素,i是集合的序号,x是元素值。设计一种恰当的数
某个任务的数据模型可以抽象为给定的k个集合:S1,S2,…,Sk。其中Si(1≤i≤k中的元素个数不定。在处理数据过程中将会涉及元素的查找和新元素的插入两种操作,查找和插入时用一个二元组(i,x)来规定一个元素,i是集合的序号,x是元素值。设计一种恰当的数
admin
2019-01-16
35
问题
某个任务的数据模型可以抽象为给定的k个集合:S
1
,S
2
,…,S
k
。其中S
i
(1≤i≤k中的元素个数不定。在处理数据过程中将会涉及元素的查找和新元素的插入两种操作,查找和插入时用一个二元组(i,x)来规定一个元素,i是集合的序号,x是元素值。设计一种恰当的数据结构来存储这k个集合的元素,并能高效地实现所要求的查找和插入操作。
(1)构造数据结构,并且说明选择的理由。
(2)若一组数据模型为S
1
={10.2,1.7,4.8,16.2},S
2
={1.7,8.4,0.5},S
3
={4.8,4.2,3.6,2.7,5.1,3.9},待插入的元素二元组为(2,11.2)和(1,5.3),按你的设计思想画出插入元素前后的数据结构状态。
选项
答案
借助于分块查找思想,在建立数据顺序表的同时,建立一索引表。数据表中按k个集合分块(元素个数不一定相等),索引表中有两个域,一是各集合最后一个元素在数据表中的位置(一维数组中的下标),二是集合的个数(k)。实现数据运算时,根据给定的二元组(i,x),首先在索引表中找到集合i的位置,然后在数据表中查找x。查到x,则查找成功,返回x在数据表中的位置,否则查找失败。若要插入,则将数据表中的数据后移,插入x,同时修改索引表。 typedef struct{datatype data;}rectype; typedef struct{ int a[]; //a数组容量够大,存储各集合最后一个数 据在数据表中的下标 int k: //集合个数 }index; int SetSearch_Insert(rectype R[]I index id,datatype x,int i){ //数据表R,查找第i个集合的元素X,若查找成功,返回其位置, //否则将其插入第i个集合 if(i<1 || i>id.k){printf(”无第%d个集合\n”,i);exit(0); } if(i==1)first=0; //first指向第i个集合在数据表的首址 else first=id.a[i一1]+1; last=id.a[i]; //last是第i个集合在数据表中的末址 for(j=first;j<last;j++)if(R[j]==X)return(j); //查找成功 for(j=id.a[id.k];j>id.A[i];j--){ //查找失败,将x插入数据表 R[j+1]=R[j]; //元素后移 R[j+1]=x: //将X插入到原第i个集合最后一个元素之后 for(j=i;j≤k;j++)id.a[j]++; //修改索引表中各集合最后一个元素的下标 } 由于各集合元素个数不等,各块长度不等且块间无序,索引表中用数组表示,数组中元素值是各集合最后一个元素在数据表中的下标。按本算法插入(2,11.2)和(1,5.3),数据表前后状态如下: [*] 插入前,索引表中a数组的内容是3,6,12,插入后修改为4,8,14。
解析
转载请注明原文地址:https://jikaoti.com/ti/rpfjFFFM
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
玛雅人的金字塔主要功能是()。
简述路德“唯信称义”与加尔文“预定论”的关系与区别。
五四运动后,马克思主义在中国广泛传播。1920年在上海出版了最早的《共产党宣言》中文全译本,译者是()
中华民国军政府是由下列哪个军阀成立的?()
下列哪两个国家是第二次工业革命的发源地和“中心”?
在一个HDLC帧的数据中,如果出现了000111111011这样的流,请问发送到信道上它将会变成()。
描述滑动窗口机制及其作用。比较停止一等待协议,多帧滑动窗口和后退N帧协议,多帧滑动窗口与选择重传协议的区别。
下图是某存储芯片的引脚图,请回答:(1)这个存储芯片的类型(是RAM还是ROM)?这个存储芯片的容量?(2)若地址线增加一根,存储芯片的容量将变为多少?(3)这个芯片是否需要刷新?为什么?刷新和重写有什么区别。(4)
网络如图所示。链路旁边注明的数字代表链路的长度(假想单位)。试利用Dijkstra算法求出从结点A到所有其他结点的最短路由。
随机试题
某公司2008年12月31日部分总账及其所属明细账余额如下表:要求:根据上述资料计算填列资产负债表中的空白项目。
小说的“三要素”的内涵是什么?请结合中外著名小说实例说明。
《季氏将伐颛臾》选自()
Researchsuggeststhattherearetypicallytwodifferentleadershiprolesthatareheldbydifferentindividuals.
急性白血病易继发感染的直接原因是( )
8个月女婴。突发高热39.8℃,抽搐一次急诊就医。查体:精神可,神清,身上有少许皮疹,前囟平。咽部充血,扁桃体Ⅱ度肿大,心、肺、腹(-),无病理反射。下列与诊断无关的表现是
基金市场营销主要是指开放式基金的市场营销,其涉及的内容包括()。
甲商业银行M支行为增值税一般纳税人,主要提供相关金融服务。2017年第四季度,提供贷款服务,取得含增值税利息收入6491.44万元;提供票据贴现服务,取得含增值税利息收入874.5万元。假设暂无其他业务,甲商业银行第四季度的销项税额为416.94万元。(
国务院有权()。
汉代对选拔任用官吏有身份的限制,据此,下列各选项能够成立的是
最新回复
(
0
)