2010福建省数据库考试含答案高级
- 格式:docx
- 大小:20.19 KB
- 文档页数:4
2010年(下)全国信息技术水平考试数据库应用系统设计技术水平证书(SQL Server)试卷答案三.设计题(共60分)评分说明:有些查询要求的实现方式有多种,因此如果考生所给答案和参考答案不一致,应根据考生答案实际情况判断其正确与否。
1.(6分)评分准则:创建每个表及主键1分,共3分;插入每个表的数据1分,共3分。
create table book(bno char(4) primary key,bname char(20),author char(10),publish char(20),pubdate datetime);create table reader(rno char(4) primary key,rname char(10));create table borrow(borrowno int primary key,bno char(4),rno char(4),borrowdate datetime);insert into book values('0001','数据库原理','李明','出版社A','2008-10-01');insert into book values('0002','软件工程','张永','出版社B','2008-08-09');insert into book values('0003','操作系统','赵明哲','出版社A','2009-03-06');insert into book values('0004','数据结构','张辉','出版社C','2009-05-28');insert into reader values('0001','李莎');insert into reader values('0002','陈世杰');insert into reader values('0003','吴忠');insert into borrow values(1,'0001','0001','2010-03-15');insert into borrow values(2,'0002','0001','2010-03-20');insert into borrow values(3,'0002','0002','2010-03-30');insert into borrow values(4,'0003','0002','2010-04-05');insert into borrow values(5,'0003','0001','2010-04-12');insert into borrow values(6,'0004','0001','2010-04-21');2.(3分)评分准则:创建了1个外键给2分;创建了两个外键给3分。
1、因为后序遍历栈中保留当前结点的祖先的信息,用一变量保存栈的最高栈顶指针,每当退栈时,栈顶指针高于保存最高栈顶指针的值时,则将该栈倒入辅助栈中,辅助栈始终保存最长路径长度上的结点,直至后序遍历完毕,则辅助栈中内容即为所求。
void LongestPath(BiTree bt)//求二叉树中的第一条最长路径长度{BiTree p=bt,l[],s[]; //l, s是栈,元素是二叉树结点指针,l中保留当前最长路径中的结点int i,top=0,tag[],longest=0;while(p || top>0){ while(p) {s[++top]=p;tag[top]=0; p=p->Lc;} //沿左分枝向下if(tag[top]==1) //当前结点的右分枝已遍历{if(!s[top]->Lc && !s[top]->Rc) //只有到叶子结点时,才查看路径长度if(top>longest) {for(i=1;i<=top;i++) l[i]=s[i]; longest=top; top--;}//保留当前最长路径到l栈,记住最高栈顶指针,退栈}else if(top>0) {tag[top]=1; p=s[top].Rc;} //沿右子分枝向下}//while(p!=null||top>0)}//结束LongestPath2、证明由二叉树的中序序列和后序序列,也可以唯一确定一棵二叉树。
当n=1时,只有一个根结点,由中序序列和后序序列可以确定这棵二叉树。
设当n=m-1时结论成立,现证明当n=m时结论成立。
设中序序列为S1,S2,…,Sm,后序序列是P1,P2,…,Pm。
因后序序列最后一个元素Pm是根,则在中序序列中可找到与Pm相等的结点(设二叉树中各结点互不相同)Si(1≤i≤m),因中序序列是由中序遍历而得,所以Si是根结点,S1,S2,…,Si-1是左子树的中序序列,而Si+1,Si+2,…,Sm是右子树的中序序列。
数据管理技术第1题:下列关于数据库管理系统的叙述,正确的是A.数据库管理系统具有对任何信息资源管理和控制的能力B.数据库管理系统对普通用户来说具有不可操作性C.数据库管理系统是数据库的统称D.数据库管理系统具有对数据库中数据资源进行统一管理和控制的功能第2题:下列关于数据库系统的主要特点的叙述,错误的是A.数据具有较高的独立性B.数据结构化C.数据共享D.实现数据冗余第3题:如图所示的"读者信息"表中,关键字可定义为A.性别B.读者身份C.借书证号D.姓名第4题:如图所示为某学校行政管理结构,该图描述的数据模型是A.网状模型B.面向对象模型C.关系模型D.层次模型第5题:关系数据库的二维表(关系)必须满足的条件是①表中不允许有重复的字段,表中每一列的数据类型必须相同。
②表中不应有内容完全相同的行。
③行和列排列顺序是无关紧要的。
④第一个数据项可以是组合项。
A.①②③B.①③④C.①②④D.②③④第6题:在"中小学生信息技术大赛"的数据表中,有关参赛选手的信息如下:"选手编号、姓名、性别、出生年月、学校名称、比赛成绩"其中"姓名"和"比赛成绩"的数据类型可以定义为A.数字型和文本型B.文本型和数字型C.文本型和文本型D.数字型和数字型第7题:如图所示的"福建省长途区号及邮编"表中,各字段的名称分别是A.福州、0591、350000B.福州、厦门、宁德C.地名、长途区号、邮编D.地名、福州、厦门第8题:在信息世界,实体集之间的联系有三种:一对一联系、一对多联系和A.单对单联系B.数据联系C.逻辑联系D.多对多联系第9题:下列不属于机器世界术语的是A.关键字B.记录C.字体D.字段第10题:如图所示的实体集对应的二维表是第11题:添加记录:打开Z:\"Access\483\"文件夹下的数据库文件"学生体能测试.mdb",进行以下操作并保存!在"三班"数据表中插入五条新记录(字母和数字均为半角字符),新记录内容如下表所示:第12题:建立数据库结构:在Z:\"Access\484\"下新建一个名称为"用餐价目.mdb"的Access数据库,进行以下操作并保存。
《ACCESS2010数据库应用技术》课后习题参考答案目录第1章.................................................................................................. .. (2)第2章.................................................................................................. .. (4)第3章.................................................................................................. .. (5)第4章.................................................................................................. .. (5)第5章.................................................................................................. .. (6)第6章.................................................................................................. .. (7)第7章.................................................................................................. .. (8)第8章.................................................................................................. .. (9)第9章.................................................................................................. (12)1第1章一、选择题1.B2.A3.B4.B5.D6.C7.A8.D9.C10.A11.C12.D13.B14.D15.B二、填空题1.数据库,数据库管理系统,数据库系统2.元组,属性3.1:n或一对多4.选择5.文件6.表,窗体三、问答题1.答:计算机数据管理技术经历了人工管理、文件管理、数据库管理以及新型数据库系统等发展阶段。
一、选择题(每小题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)冯·诺依曼奠定了现代计算机工作原理的基础。
下列叙述中,哪个(些)是正确的?I.程序必须装入内存才能执行II.计算机按照存储的程序逐条取出指令,分析后执行指令所规定的操作III.计算机系统由运算器、存储器、控制器、输入设备、输出设备等五大部件组成A)仅I B)仅I和II C)仅II和III D)都正确(2)关于指令系统的寻址方式,如果在指令中给出操作数所在的地址,该方式称为A)立即寻址B)直接寻址C)寄存器寻址D)寄存器间接寻址(3)用于实现Internet中文件传输功能所采用的应用层协议是A)FTP B)DNS C)SMTP D)HTTP(4)WWW能够提供面向Internet服务的、一致的用户界面的信息浏览功能,其使用的基础协议是A)FTP B)DNS C)SMTP D)HTTP(5)一般操作系统的安全措施可从隔离、分层和内控三个方面考虑,隔离是操作系统安全保障的措施之一。
限制程序的存取,使其不能存取允许范围以外的实体,这是A)物理隔离B)时间隔离C)逻辑隔离D)密码隔离(6)下列哪一个不属于恶意软件?A)逻辑炸弹B)服务攻击C)后门陷阱D)僵尸网络(7)下列哪些是数据结构研究的内容?I.数据的采集和集成II.数据的逻辑结构III.数据的存储结构IV.数据的传输V.数据的运算A)仅I、II和III B)仅II、III和VC)仅I、II和IV D)仅I、III和V(8)下列与数据元素有关的叙述中,哪些是正确的?I.数据元素是数据的基本单位,即数据集合中的个体II.数据元素是有独立含义的数据最小单位III.一个数据元素可由一个或多个数据项组成IV.数据元素又称做字段V.数据元素又称做结点A)仅I和II B)仅II、III和IV C)仅I和III D)仅I、III和V(9)下列与算法有关的叙述中,哪一条是不正确的?A)算法是精确定义的一系列规则B)算法指出怎样从给定的输入信息经过有限步骤产生所求的输出信息C)算法的设计采用由粗到细,由抽象到具体的逐步求精的方法D)对于算法的分析,指的是分析算法运行所要占用的存储空间,即算法的空间代价(10)下列关于栈和队列的叙述中,哪些是正确的?I.栈和队列都是线性表II.栈和队列都是顺序表III.栈和队列都不能为空IV.栈和队列都能应用于递归过程实现V.栈的特点是后进先出,而队列的特点是先进先出A)仅I和V B)仅I、II、V C)仅III和IV D)仅II、III和IV(11)按后根次序周游树(林)等同于按什么次序周游该树(林)对应的二叉树?A)前序B)后序C)对称序D)层次次序(12)有关键码值为10, 20. 30的三个结点,按所有可能的插入顺序去构造二叉排序树。
2010上半年数据库系统工程师考试下午真题及解析(1)《五年高考三年模拟》相当于高考“武功秘籍”中的《九阴真经》。
海量的题库,对真题详尽的解析,备受老师和学生的追捧。
可见,真题是应对考试的上好资料,下面希赛软考学院为你整理了2010上半年数据库系统工程师考试下午真题及解析,助你修炼出一身“绝技”,应对来年的数据库系统工程师考试。
试题一阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
[说明]某大型企业的数据中心为了集中管理、控制用户对数据的访问并支持大量的连接需求,欲构建数据管理中问件,其主要功能如下:(1)数据管理员可通过中间件进行用户管理、操作管理和权限管理。
用户管理维护用户信息,用户信息(用户名、密码)存储在用户表中;操作管理维护数据实体的标准操作及其所属的后端数据库信息,标准操作和后端数据库信息存放在操作表中;权限管理维护权限表,该表存储用户可执行的操作信息。
(2)中间件验证前端应用提供的用户信息。
若验证不通过,返回非法用户信息;若验证通过,中间件将等待前端应用提交操作请求。
(3)前端应用提交操作请求后,中间件先对请求进行格式检查。
如果格式不正确,返回格式错误信息;如果格式正确,则进行权限验证(验证用户是否有权执行请求的操作),若用户无权执行该操作,则返回权限不足信息,否则进行连接管理。
(4)连接管理连接相应的后台数据库并提交操作。
连接管理先检查是否存在空闲的数据库连接,如果不存在,新建连接;如果存在,则重用连接。
(5)后端数据库执行操作并将结果传给中间件,中间件对收到的操作结果进行处理后,将其返回给前端应用。
现采用结构化方法对系统进行分析与设计,获得如图1-1所示的顶层数据流图和图1-2所示的0层数据流图。
[问题1]使用说明中的词语,给出图1-1中的实体E1~E3的名称。
[问题2]使用说明中的词语,给出图1-2中的数据存储D1~D3的名称。
[问题3]给出图1-2中加工P的名称及其输入、输出流。
数据库考试题含参考答案一、单选题(共80题,每题1分,共80分)1、access2010的核心数据库对象是()A、查询B、表C、报表D、窗体正确答案:B答案解析:只有表才能保存数据,则表是数据库的最核心对象。
2、数据库技术的应用,最关键的是解决()A、数据共享B、数据存储C、数据分类D、数据统计正确答案:A答案解析:数据库技术的根本性目的就是为了解决数据共享问题。
3、在窗体中要显示一名教师基本信息和该教师所承担的全部课程情况,窗体设计时在主窗体中显示教师基本信息,在子窗体中显示承担的课程情况,则主窗体和子窗体数据源之间的关系是A、一对一关系B、一对多关系C、多对一关系D、多对多关系正确答案:B答案解析:窗体中的窗体称为子窗体,包含子窗体的窗体称为主窗体,主窗体和子窗体常用来表示一对多的关系。
根据题意,主窗体和子窗体数据源之问的关系就是教师实体集和课程实体集之问的关系。
一名教师可以承担多门课程,但是一门课程只能由一个教师承担。
所以是一对多的关系,因此选择B选项。
4、关于数据库的描述,不正确的是()A、数据库中不能存储声音B、数据库能存储结构化的数据C、数据库的英文简称是DBD、数据库存储事物的特征描述和事物间的联系正确答案:A答案解析:数据库中不但可以存储各类字符,也可以存储图片、声音、视频等多媒体数据。
5、利用Access,可以定义3种主键,它们是()A、单字段、双字段和多字段B、单字段、双字段和自动编号C、单字段、多字段和自动编号D、双字段、多字段和自动编号正确答案:C答案解析:在Access数据库中,主键可分为单字段、多字段和自动编号主键,其中多字段主键的字段数最多不能超过10个字段。
6、若要建立数据库内两个表之间的关系,应对()的字段作为关联建立联系A、相同名称的字段B、相同数据类型的字段C、名称相同且数据类型相同D、数据类型相同且字段含义和大小相同正确答案:D答案解析:关联字段必须是数据类型、字段大小和字段含义相同的字段。
《 Access2010数据库基础与应用》期末考试题( A 卷)(含答案)1. DBMS提供了__________语言,用于实现数据的插入、更新、删除、检索等任务。
A . DCLB . DDL C. DML D. APL2.在 E-R 图中,用来表示“实体”的图形是__________ 。
A .椭圆形B .矩形C.三角形D.菱形3.在Access 数据库设计中,将E-R 图转换为关系模式是___________ 中的任务。
A .数据库物理设计B.数据库优化C.数据库概念设计D.数据库逻辑设计4.在Access 数据库中,用于存储数据的对象是__________。
A .表B.窗体C.报表D.查询5.下列叙述中,___________是错误的。
A.一个关系中的任意两个分量不可以相同B.一个关系中的任意两个属性名不可以相同C.一个关系中的任意两个元组不可以完全相同D.关系中的元组也称为记录6.对于一个日期/时间类型的字段,如果想使该字段数据以类似“xxxx 年 x 月 x 日”方式显示,可以通过对其字段属性的“格式”设定为____________ 来实现。
A .短日期B.中日期C.长日期D.常规日期7.下列实体的联系中,属于一对多的联系是___________。
A .学生与宿舍床位B .学校与校长C.学生与课程 D .学校与教师8. SQL 语句中的CREATE TABLE关键字的功能是在数据库中__________。
A .创建表B.创建查询C.创建窗体D.创建数据访问页9.“学院”表中有一个“学院名称”字段,要查找学院名称为“商学院”或“法学院”的记录,使用的条件是 __________ 。
A . In(" 商学院或法学院")B .In(" 商学院 "," 法学院 ")C.In(" 商学院 " or " 法学院 ")D. In(" 商学院 " and " 法学院 ")10.用表“教师”创建新表“教师2”,所使用的查询方式是__________ 。
《Access2010数据库应用》试题及答案1、用Access2010创建的数据库文件,其扩展名为()。
A. mdbB. frmC. dbfD. accdb2、下列()不是Access数据库的对象类型?A. 数据表B. 窗体C. 文件夹D. 报表3、()是用户定义的用于存储数据的对象,是数据库的基础。
A. 数据表B. 窗体C. 查询D. 报表4、()向用户提供一个交互式的图形界面,用于进行数据的输入、显示、编辑,以及应用程序的执行控制。
A. 数据表B. 窗体C. 查询D. 报表5、()常用于集中、简化或定制显示数据库中的数据信息。
A. 数据表B. 窗体C. 查询D. 报表6、()是为计算、打印、分组汇总数据而设计的一种数据库对象,可以帮助用户以更好的方式表示数据。
A. 数据表B. 窗体C. 查询D. 报表7、()可以对数据表进行表字段的添加,表记录的增加、删除、修改,是系统默认的视图。
A. 数据表视图B. 数据透视表视图C. 布局视图D. 设计视图8、()展示窗体的实际显示样式,不能进行窗体的编辑和属性的设置。
A. 数据表视图B. 窗体视图C. 布局视图D. 设计视图9、下列不属于查询视图方式的是()。
A. 数据表视图B. SQL视图C. 设计视图D. 窗体视图10、以下哪种视图可以展示报表在屏幕端的显示效果()。
A. 报表视图B. 打印预览C. 布局视图D. 设计视图11、()可以唯一地标识数据表中的每一条记录,它可以是一个字段,以可以是多个字段的组合。
A. 主键B. 索引C. 排序D. 次关键字12、在表设计视图中,若将学生成绩表中的“学号”和“课程号”组合定义为主键,需要先按住()键,逐个单击所需字段后,再单击“主键”按钮。
A.ShiftB. CtrlC. AltD. Tab13、一个字段由()组成。
A. 字段名称B. 数据类型C. 字段属性D. 以上都是14、创建表时可以在()中进行。
A. 报表设计器B. 表浏览器C. 表设计器D. 查询设计器15、下列不是窗体的组成部分的是()。
Access2010数据库技术与应用期末考试试卷(B卷)(考试时间90分钟,满分100分)一、选择题(1~30题,每题1分,共30分)下面各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂抹在答题卡相应的位置上,答在试卷上不得分。
1. 以下有关对数据的解释错误的是:()。
A.数据是信息的载体B.数据是信息的表现形式C.数据是0~9组成的符号序列D.数据与信息在概念上是有区别的2. 以下模式不是数据库系统体系结构中包含的模式的是:()。
A.模式 B.外模式C.优化模式 D.内模式3. 能够实现对数据库中数据操纵的软件是:()。
A.操作系统 B.解释系统C.编译系统 D.数据库管理系统4. 数据库系统与文件系统最根本的区别是:()。
A.文件系统只能管理程序文件,而数据库系统可以管理各种类型文件B.数据库系统复杂,而文件系统简单C.文件系统管理的数据量少,而数据库系统可以管理庞大数据量D.文件系统不能解决数据冗余和数据的独立性,而数据库系统能5. 数据管理技术的发展阶段不包括:()。
A.操作系统管理阶段 B.人工管理阶段C.文件系统管理阶段 D.数据库系统管理阶段6. 以下不属于数据库设计步骤的是:()。
A.概念结构设计 B.签约C.逻辑结构设计 D.需求分析7. 设有“学生”和“班级”两个实体,每个学生只能属于一个班级,一个班级可以有多个学生,“学生”和“班级”实体间的联系是:()。
A.多对多B.一对多C.多对一D.一对一8. 在关系数据库中主键标识元组的作用是通过()实现。
A.实体完整性B.参照完整性C.用户自定义的完整性D.域完整性9. 在关系运算中,只想要改变一个关系中的属性排列顺序,应使用()关系运算。
A.选择 B.除C.连接 D.投影10. 向一个已知关系R中添加新元组(新元组存在S中),以下运算正确的是()。
A.B.C.R-S D.R×S11. 下面在Access的SQL视图中无法运行的是()。
1、冒泡排序算法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)请给出上浮和下沉过程交替的冒泡排序算法。
48.有n个记录存储在带头结点的双向链表中,现用双向起泡排序法对其按上升序进行排序,请写出这种排序的算法。
(注:双向起泡排序即相邻两趟排序向相反方向起泡)
2、将顶点放在两个集合V1和V2。
对每个顶点,检查其和邻接点是否在同一个集合中,如是,则为非二部图。
为此,用整数1和2表示两个集合。
再用一队列结构存放图中访问的顶点。
int BPGraph (AdjMatrix g)
//判断以邻接矩阵表示的图g是否是二部图。
{int s[]; //顶点向量,元素值表示其属于那个集合(值1和2表示两个集合)
int Q[];//Q为队列,元素为图的顶点,这里设顶点信息就是顶点编号。
int f=0,r,visited[]; //f和r分别是队列的头尾指针,visited[]是访问数组
for (i=1;i<=n;i++) {visited[i]=0;s[i]=0;} //初始化,各顶点未确定属于那个集合
Q[1]=1; r=1; s[1]=1;//顶点1放入集合S1
while(f<r)
{v=Q[++f]; if (s[v]==1) jh=2; else jh=1;//准备v的邻接点的集合号
if (!visited[v])
{visited[v]=1; //确保对每一个顶点,都要检查与其邻接点不应在一个集合中
for (j=1,j<=n;j++)
if (g[v][j]==1){if (!s[j]) {s[j]=jh; Q[++r]=j;} //邻接点入队列
else if (s[j]==s[v]) return(0);} //非二部图
}//if (!visited[v])
}//while
return(1); }//是二部图
[算法讨论] 题目给的是连通无向图,若非连通,则算法要修改。
3、编写一个过程,对一个n×n矩阵,通过行变换,使其每行元素的平均值按递增顺序排列。
4、设一棵二叉树的结点结构为 (LLINK,INFO,RLINK),ROOT为指向该二叉树根结点的指针,p 和q分别为指向该二叉树中任意两个结点的指针,试编写一算法ANCESTOR(ROOT,p,q,r),该算法找到p和q的最近共同祖先结点r。
5、数组A和B的元素分别有序,欲将两数组合并到C数组,使C仍有序,应将A和B拷贝到C,只要注意A和B数组指针的使用,以及正确处理一数组读完数据后将另一数组余下元素复制到C中即可。
void union(int A[],B[],C[],m,n)
//整型数组A和B各有m和n个元素,前者递增有序,后者递减有序,本算法将A和B归并为递增有序的数组C。
{i=0; j=n-1; k=0;// i,j,k分别是数组A,B和C的下标,因用C描述,下标从0开始while(i<m && j>=0)
if(a[i]<b[j]) c[k++]=a[i++] else c[k++]=b[j--];
while(i<m) c[k++]=a[i++];
while(j>=0) c[k++]=b[j--];
}算法结束
4、要求二叉树按二叉链表形式存储。
15分
(1)写一个建立二叉树的算法。
(2)写一个判别给定的二叉树是否是完全二叉树的算法。
BiTree Creat() //建立二叉树的二叉链表形式的存储结构
{ElemType x;BiTree bt;
scanf(“%d”,&x); //本题假定结点数据域为整型
if(x==0) bt=null;
else if(x>0)
{bt=(BiNode *)malloc(sizeof(BiNode));
bt->data=x; bt->lchild=creat(); bt->rchild=creat();
}
else error(“输入错误”);
return(bt);
}//结束 BiTree
int JudgeComplete(BiTree bt) //判断二叉树是否是完全二叉树,如是,返回1,否则,返回0
{int tag=0; BiTree p=bt, Q[]; // Q是队列,元素是二叉树结点指针,容量足够大
if(p==null) return (1);
QueueInit(Q); QueueIn(Q,p); //初始化队列,根结点指针入队
while (!QueueEmpty(Q))
{p=QueueOut(Q); //出队
if (p->lchild && !tag) QueueIn(Q,p->lchild); //左子女入队
else {if (p->lchild) return 0; //前边已有结点为空,本结点不空
else tag=1; //首次出现结点为空
if (p->rchild && !tag) QueueIn(Q,p->rchild); //右子女入队
else if (p->rchild) return 0; else tag=1;
} //while
return 1; } //JudgeComplete
6、给定n个村庄之间的交通图,若村庄i和j之间有道路,则将顶点i和j用边连接,边上的Wij表示这条道路的长度,现在要从这n个村庄中选择一个村庄建一所医院,问这所医院应建在哪个村庄,才能使离医院最远的村庄到医院的路程最短?试设计一个解答上述问题的算法,并应用该算法解答如图所示的实例。
20分
void Hospital(AdjMatrix w,int n)
//在以邻接带权矩阵表示的n个村庄中,求医院建在何处,使离医院最远的村庄到医院的路径最短。
{for (k=1;k<=n;k++) //求任意两顶点间的最短路径
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
if (w[i][k]+w[k][j]<w[i][j]) w[i][j]=w[i][k]+w[k][j];
m=MAXINT; //设定m为机器内最大整数。
for (i=1;i<=n;i++) //求最长路径中最短的一条。
{s=0;
for (j=1;j<=n;j++) //求从某村庄i(1<=i<=n)到其它村庄的最长路径。
if (w[i][j]>s) s=w[i][j];
if (s<=m) {m=s; k=i;}//在最长路径中,取最短的一条。
m记最长路径,k记出发
顶点的下标。
Printf(“医院应建在%d村庄,到医院距离为%d\n”,i,m);
}//for
}//算法结束
对以上实例模拟的过程略。
各行中最大数依次是9,9,6,7,9,9。
这几个最大数中最小者为6,故医院应建在第三个村庄中,离医院最远的村庄到医院的距离是6。
1、对图1所示的连通网G,请用Prim算法构造其最小生成树(每选取一条边画一个图)。
7、有一个带头结点的单链表,每个结点包括两个域,一个是整型域info,另一个是指向下一个结点的指针域next。
假设单链表已建立,设计算法删除单链表中所有重复出现的结点,使得info域相等的结点只保留一个。
#include <stdio.h>
typedef char datatype;
typedef struct node{
datatype data;
struct node * next;
} listnode;
typedef listnode* linklist;
/*--------------------------------------------*/
/* 删除单链表中重复的结点 */
/*--------------------------------------------*/
linklist deletelist(linklist head)
{ listnode *p,*s,*q;
p=head->next;
while(p)
{s=p;
q=p->next;
while(q)
if(q->data==p->data)
{s->next=q->next;free(q);
q=s->next;}
else
{ s=q; /*找与P结点值相同的结点*/
q=q->next;
}
p=p->next;
}
return head;
}
8、假设K1,…,Kn是n个关键词,试解答:
试用二叉查找树的插入算法建立一棵二叉查找树,即当关键词的插入次序为K1,K2,…,Kn 时,用算法建立一棵以LLINK / RLINK 链接表示的二叉查找树。
9、给出折半查找的递归算法,并给出算法时间复杂度性分析。