2014山西省学习数据库基础
- 格式:pdf
- 大小:191.42 KB
- 文档页数:7
2014电大《数据库基础与应用》形考考核册答案数据库基础与应用第一次作业答案一、单选:ABCDBACBB二、判断:√√√√╳√√╳╳√三、填空:(1-36)依赖于、文件管理数据库、文件管理数据库、局部全局、主属性非主属性、多多、1 多、型值、元组属性、关系定义 DBMS、继承封装多态、DBA 数据库设计员应用程序设计员终端用户、外模式与模式模式与内模式、定义/操作/控制自动建立、关系数据结构关系运算关系完整性规则、单值重复、侯选码属性的、主非主、空主码、7 3 2、选择 2、S >< II学生号 (X))、II课程号(X)与C 、X←→Y 决定因素、非平凡完全、学号系主任、 X→Y X→Z 分解性、X 侯选码、2、3、第一不可再分、数据冗余操纵异常、第一 2 、第二二、第三、BC 主属性数据库基础与应用形考作业参考答案第二次作业解答:一、填空:(1-21)视图基本表、CREATE SCHEMA DROP SCHEMA、列级表级、列级表级、建立修改删除、VALUES SELECT、表建立、按需要安全、不影响直接影响、SELECT FROM WHERE、GROUP BY ORDER BY 、需求分析概念设计、数据流图数据字典需求说明书、需求分析ER图、商品销售收款、全局模式外模式、1对1 1对多、设计要求功能完善操作方便、客房表住宿、娱乐费表催补款表、客房表客房空闲表二、写功能1. 从商品库中查询出每一种商品的商品代号、分类名、数量和品牌等信息。
2. 从商品库中查询出所有商品的不同产地的总数。
3. 从教学库中查询出每门课程被选修的学生数。
4. 从教学库中查询出学生号为@S1的学生和学生号为@S2的学生所选修的共同课程的课程号。
5. 从教学库中查询出所有已被学生选修的课程。
6. 从教学库中查询出最多选修了2门课程(含未选任何课程)的全部学生。
7. 从教学库中查询出每个学生的选课的全部情况,并依次按学生号和成绩排序。
《数据库原理与应用》课程教学大纲一. 适用对象适用于本科学生。
二. 课程性质数据库应用技术是计算机科学中的核心技术之一,以其为核心的各种数据库应用管理,无可争议地改变了政府部门和企事业单位的运营和管理方式。
随着数据库的应用广度和深度的扩展,不单是计算机和信心技术IT从业者,包括技术管理、工程管理甚至决策人员在内的众多行业的读者都开始关心数据库技术。
今天,理解数据库概念以及掌握相关应用技术已经成为人们,特别是青年一代必备的技能。
本课程系统讲述数据库系统的基础理论、基本技术和基本方法。
内容包括:数据库系统的基本概念、数据模型、关系数据库及其标准语言SQL、数据库安全性和完整性的概念和方法、关系规范化理论、数据库设计方法和步骤,数据库恢复和并发控制等事务管理基础知识,关系查询处理和查询优化等。
前序课程:计算机基础、C语言。
三. 教学目的1. 掌握数据库技术的基本概念、原理、方法和技术。
2. 掌握SQL语言查询和编程的基本技术,具备SQL语言编程能力3. 掌握数据库系统安装、配置和数据库管理和维护的基本技能。
4. 掌握设计数据库的理论和基本方法,具备数据库设计的能力5. 了解数据库技术的最新发展。
四. 教材及学时安排教材:赵明渊,数据库原理与应用教程——SQL Server 2014,清华大学出版社,2018年9月学时安排:讲课32学时,实验32学时,共计64学时五. 教学要求(按章节详细阐述);第1章数据库系统概论教学要求:理解数据库和数据库系统的概念;掌握数据库系统的组成,掌握数据库管理系统的功能和组成;掌握数据模型的概念和数据模型的类型;掌握设计数据库的基本方法,具备数据库设计的能力;掌握依据需求分析进行概念设计和逻辑设计的技术和方法,具备根据需求分析阶段收集到的信息画出E-R图,并将E-R图转化为关系模式的能力。
内容要点:1.1:数据库系统1.2:数据模型1.3:数据库系统结构1.4:数据库设计第2章关系数据库系统模型教学要求:掌握关系模型的数据结构、关系的完整性以及关系操作等;掌握关系代数的运算规则;理解关系演算的运算规则;了解SQL语言的特点。
长治县五中2013学年信息技术复习资料高中信息技术水平考试复习资料车志飞搜集整理(内部交流)2013年11月---2014年6月请大家每天保证15分钟的时间学习资料 1长治县五中2013学年信息技术复习资料目录必修信息技术基础(☆☆☆的内容是考试重点)主题一、信息的基本概念☆☆☆ (4)信息的基本特征☆☆☆ (4)二、信息技术及其发展简史 (5)1、信息技术: ☆☆☆简称IT (5)2、信息技术发展的五次革命☆☆☆ (6)四、网络信息的检索 (7)2、搜索引擎及其类型☆☆☆ (8)(5)常用文件下载工具:☆☆☆ (10)五、信息的甄别与评价的方法 (15)主题2 信息的加工与表达 (16)四、多媒体信息的加工☆☆☆ (16)5、常见的音频文件格式及播放软件:☆☆☆ (16)五、信息的编程加工 (17)六、信息的智能化加工 (17)2、常用信息集成工具☆☆☆ (17)5、信息发布的方式 (18)6、信息发布 (18)7、通过网站发布信息的方式和过程 (18)主题3 信息的管理 (25)一、信息资源管理的目的和方法 (25)4、信息资源管理的方法☆☆☆ (26)二、信息资源的管理 (26)三、数据库信息资源管理 (27)1、用数据库管理信息资源的优势☆☆☆ (27)主题4 信息技术与社会 (31)一、信息技术对社会发展、科技进步以及个人生活与学习的影响 (31)二、信息安全与保护 (31)1、计算机病毒的概念与特征☆☆☆ (32)2、计算机病毒的防治 (32)三、网络使用规范和有关伦理道德 (34)学业水平测试(一)必修模块试题解析 (36)学业水平测试(二)必修模块试题解析 (39)2请大家每天保证15分钟的时间学习资料长治县五中2013学年信息技术复习资料学业水平测试(三)必修模块试题解析 (41)学业水平测试(五)必修模块试题解析 (43)学业水平测试(六)必修模块试题解析☆☆☆ (46)多媒体技术模块知识点(☆☆☆的内容是考试重点)第一章多媒体技术应用概述 (50)1、多媒体技术概念☆☆☆ (50)通常媒体分为五种类: (50)第二章图形、图像 (51)图形和图像☆☆☆ (51)位图和矢量图:☆☆☆ (52)多媒体文件压缩:☆☆☆ (52)常见的图像文件格式: (52)文件大小的计算方法:☆☆☆ (53)常用数据文件格式:☆☆☆ (54)常用软件:☆☆☆ (55)多媒体作品创作工具:☆☆☆ (56)Photoshop基本知识点☆☆☆ (56)第三章声音 (57)声音的数字化表示:☆☆☆ (57)第四章动画、视频及应用 (59)第五章多媒体信息集成 (60)第六章多媒体技术应用专题 (60)1、流媒体应用☆☆☆ (60)2、虚拟现实 (61)山西省2011年普通高中信息技术学业水平测试模拟题 (63)山西省2011年普通高中信息技术学业水平测试正式考试试题☆☆☆ (68)山西省2013年普通高中信息技术学业水平考试模拟试题(一)☆☆☆ (71)山西省2013年普通高中信息技术学业水平考试模拟试题(二)☆☆☆ (74)山西省2013年普通高中信息技术学业水平考试模拟试题(三)☆☆☆ (77)山西省2013年普通高中信息技术学业水平考试模拟试题(四)☆☆☆ (81)山西省2013年普通高中信息技术学业水平考试正式考试试题☆☆☆ (84)请大家每天保证15分钟的时间学习资料 3长治县五中2013学年信息技术复习资料必修信息技术基础(☆☆☆的内容是考试重点)主题1 信息的获取主题一、信息的基本概念☆☆☆“信息”一词通常是指数据、消息所包含的内容和意义。
《数据库基础及应用(Access》教学大纲课程名称:中文名称:数据库基础及应用(Access) ;英文名称:Basic and Application of Database (Access ) 课程编码:学分:6 总学时:96学时,其中,理论学时:48学时;上机学时:48学时适用专业:先修课程:计算机基础执笔人:审订人:一、课程的性质、目的与任务《数据库基础及应用》 ( Access )课程是为本校非计算机专业本科学生开设的公共基础课。
本课程是培养学生利用数据库技术对数据和信息进行管理、加工和运用的意识与能力的必修课之一。
课程教学目标是使学生掌握数据库理论的基础知识及概念;掌握数据库设计方法与步骤;理解SQL 语言中的Select 语句及应用;掌握Access 关系数据库管理系统软件的基本操作;理解Access 中VBA 编程技术;了解数据库安全技术;掌握数据库应用系统开发技术,能有效使用数据库技术解决数据处理中的实际问题。
二、教学内容与学时分配第一章数据库基础1.主要内容:数据库系统的基本概念;数据管理技术的发展;数据模型;关系数据库基础;数据库设计基础。
2.重点:数据库系统的基本概念;数据模型;关系数据库基础。
3.难点:数据模型;关系数据库基础。
4.教学要求:理解数据、数据库、数据库管理系统、数据库系统的基本概念,掌握层次模型、网状模型和关系模型的概念,掌握并、差、交、广义笛卡儿积和选择、投影、连接运算,掌握实体完整性约束、参照完整性约束和用户定义的完整性约束的含义,了解数据管理技术的发展中三个阶段的特点,了解分布式数据库系统和并行数据库系统,了解数据库设计的步骤。
第二章Access 数据库与表的操作1.主要内容:Access 2010 介绍;创建数据库;创建数据表;表操作。
2.重点:Access 数据类型、表结构的概念;创建数据表;表操作。
3.难点:表操作。
4.教学要求:通过对Access 数据库的操作理解数据库和表的基本概念。
access数据库基础与应用习题答案Access数据库基础与应用习题答案在现代信息化社会中,数据库管理系统(DBMS)已经成为了不可或缺的工具。
而在众多的DBMS中,Microsoft Access数据库是一种功能强大、易于使用的工具。
本文将介绍Access数据库的基础知识,并提供一些习题的答案,以帮助读者更好地理解和应用Access数据库。
一、Access数据库基础知识1. 什么是数据库?数据库是一个有组织的数据集合,用于存储和管理数据。
它可以帮助我们有效地组织、存储和检索数据。
2. 什么是DBMS?数据库管理系统(DBMS)是一种软件工具,用于创建、管理和操作数据库。
它提供了一系列功能,包括数据的存储、检索、更新和删除等。
3. 什么是Access数据库?Access数据库是由Microsoft开发的一种关系型数据库管理系统。
它提供了一个可视化界面,使用户可以轻松地创建和管理数据库。
4. 什么是表?表是数据库中的基本组成单元,用于存储数据。
每个表由一系列列和行组成,列表示不同的数据字段,行表示记录。
5. 什么是查询?查询是一种用于从数据库中检索数据的操作。
通过查询,我们可以根据特定的条件从表中获取所需的数据。
6. 什么是表单?表单是一种用于输入、编辑和显示数据的界面。
它可以帮助用户更方便地与数据库进行交互。
7. 什么是报表?报表是一种用于呈现数据的方式。
它可以将数据库中的数据以表格、图表等形式进行展示,帮助用户更好地理解和分析数据。
二、习题答案1. 如何创建一个新的数据库?打开Access软件,点击“文件”选项卡,选择“新建”->“空白数据库”,输入数据库名称并选择保存路径,点击“创建”按钮即可创建一个新的数据库。
2. 如何创建一个新的表?在数据库中,点击“创建”选项卡,选择“表设计”,在弹出的表设计窗口中,添加所需的字段和数据类型,点击“保存”按钮即可创建一个新的表。
3. 如何向表中插入数据?在表中,双击需要插入数据的字段,输入相应的数据,按下“Enter”键即可向表中插入数据。
2014电大最新《数据库基础与应用》形成性考核册答案2014电大最新《数据库基础及应用》形成性考核册作业答案一(第1~第3章)一、单选题(在每小题的空括号内填写上正确选项的字母,每小题2分,共36分)1.在利用计算机进行数据处理的四个发展阶段中,第3个发展阶段是( C )。
A.人工管理B.文件系统C.数据库系统D.分布式数据库系统2实体中能够唯一标识自己的属性被称做( A )。
A.码B.域C.联系D.元组3、关系数据模型属于( B )。
A.概念数据模型B.逻辑数据模型C.存储数据模型D.对象数据模型4.若实体A和B是1对多的联系,实体B和C是多对1的联系,则实体A和C 是( C )联系。
A.1对1B.1对多C.多对多D.多对15.在数据库体系结构的三级模式中,全局模式处于( B )层。
A.最内B.中间C.最外D.应用6.下面不属于数据库体系结构中三级模式的是( C )。
A.存储模式B.逻辑模式C.数据模式D.应用模式7.设D1、D2和D3定义域中的基数分别为2、3和4,则D1xD2xD3的元组数为( B )。
A.9B.24C.10D.148.设关系R1具有a1个属性和b1个元组,关系R2具有a2个属性和b2个元组,则关系R1×R2所具有的元组个数( D )。
A.a1+b1B.a2+b2C.a1xa2D.b1xb29.若一个关系为R(学生号,姓名,性别,年龄),则可以作为主码的属性为( A )。
A.学生号B.姓名C.性别D.年龄10.设一个关系模式为R(A,B,C),对应的关系内容为R={{1,10,50},{2,10,60},{3,20,72},{4,30,60}},则δB>15(R)的运算结果中具有的元组个数为( B )。
A.1B.2C.3D.411.设一个学生关系为S(学生号,姓名),课程关系为C(课程号,课程名),选课关系为X(学生号,课程号,成绩)。
则求出所有选修课程信息的运算表达式为П课程号(X)与( A )的自然连接。
1、请设计一个算法,要求该算法把二叉树的叶子结点按从左到右的顺序连成一个单链表,表头指针为head。
二叉树按二叉链表方式存储,链接时用叶子结点的右指针域来存放单链表指针。
分析你的算法的时、空复杂度。
2、因为后序遍历栈中保留当前结点的祖先的信息,用一变量保存栈的最高栈顶指针,每当退栈时,栈顶指针高于保存最高栈顶指针的值时,则将该栈倒入辅助栈中,辅助栈始终保存最长路径长度上的结点,直至后序遍历完毕,则辅助栈中内容即为所求。
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)}//结束LongestPath3、请设计一个算法,要求该算法把二叉树的叶子结点按从左到右的顺序连成一个单链表,表头指针为head。
二叉树按二叉链表方式存储,链接时用叶子结点的右指针域来存放单链表指针。
分析你的算法的时、空复杂度。
4、若第n件物品能放入背包,则问题变为能否再从n-1件物品中选出若干件放入背包(这时背包可放入物品的重量变为s-w[n])。
1、在软件开发中,下面任务不属于设计阶段的是(D)A. 数据结构设计B. 给出系统模块结构C. 定义模块算法D. 定义需求并建立系统模型2、在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送(D)A. 调用语句B. 命令C. 口令D. 消息3、下面概念中,不属于面向对象方法的是 (D)A. 对象B. 继承C. 类D. 过程调用4、在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(D)A. 概要设计B.详细设计C. 可行性分析D. 需求分析5、关系数据库管理系统能实现的专门关系运算包括(B)A. 排序、索引、统计B. 选择、投影、连接C. 关联、更新、排序D. 显示、打印、制表6、下面对对象概念描述错误的是(A)A. 任何对象都必须有继承性B. 对象是属性和方法的封装体C. 对象间的通讯靠消息传递D. 操作是对象的动态性属性7、软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及(B)A. 阶段性报告B. 需求评审C. 总结D. 都不正确8、在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(D)A. 概要设计B. 详细设计C. 可行性分析D. 需求分析9、算法的时间复杂度是指(C)A. 执行算法程序所需要的时间B. 算法程序的长度C. 算法执行过程中所需要的基本运算次数 D. 算法程序中的指令条数10、下面对对象概念描述错误的是(A)A. 任何对象都必须有继承性B. 对象是属性和方法的封装体C. 对象间的通讯靠消息传递D. 操作是对象的动态性属性11、下列叙述中正确的是(C)A.数据库是一个独立的系统,不需要操作系统的支持B.数据库设计是指设计数据库管理系统C.数据库技术的根本目标是要解决数据共享的问题D.数据库系统中,数据的物理结构必须与逻辑结构一致12、下列叙述中正确的是(C)A.数据库是一个独立的系统,不需要操作系统的支持B.数据库设计是指设计数据库管理系统C.数据库技术的根本目标是要解决数据共享的问题D.数据库系统中,数据的物理结构必须与逻辑结构一致13、数据库设计包括两个方面的设计内容,它们是(A)A. 概念设计和逻辑设计B. 模式设计和内模式设计C. 内模式设计和物理设计D. 结构特性设计和行为特性设计。
山西省商务厅关于印发2014年山西省规范市场秩序工作要点的通知正文:---------------------------------------------------------------------------------------------------------------------------------------------------- 山西省商务厅关于印发2014年山西省规范市场秩序工作要点的通知(晋商秩〔2014〕35号)各市商务局:现将《2014年山西省规范市场秩序工作要点》印发给你们,请结合工作实际认真贯彻执行。
山西省商务厅2014年3月19日2014年山西省规范市场秩序工作要点2014年,全省商务领域规范市场秩序工作要以党的十八大和十八届三中全会为指导,全面贯彻落实全省商务工作会议精神,以建设法治化营商环境为工作重点,加强市场监管,规范市场秩序,重点抓好6个方面、26项工作任务。
一、切实做好消除地区封锁、打破行业垄断工作(一)着力解决突出问题。
认真落实商务部、国家税务总局等12个部门印发的《消除地区封锁打破行业垄断工作方案》(商秩发〔2013〕446号)。
结合我省实际,认真制定具体工作细则,通过清理整顿,切实解决方案中提出的滥用行政权力限定购买外阜产品、采取歧视性手段限制外地产品进入本地市场、设置关卡阻碍产品自由进出等突出问题。
在调查研究的基础上,协调相关部门提出完善跨地区经营企业汇总纳税等有关政策建议,配合有关职能部门积极推进资本市场企业并购重组的市场化改革。
(二)做好清理审核工作。
认真落实省商务厅、省法制办等部门联合印发的《关于集中清理在市场经济活动中实行地区封锁规定的通知》(晋商秩〔2014〕28号),牵头集中清理我省各级地方政府制定的不符合国家税收法律的区域性税收优惠政策,歧视外地企业而出台的有关财政补贴政策和各类优惠政策,以及在招投标活动中限制、排斥外地企业参与的歧视性规定等。
1、本题要求建立有序的循环链表。
从头到尾扫描数组A,取出A[i](0<=i<n),然后到链表中去查找值为A[i]的结点,若查找失败,则插入。
LinkedList creat(ElemType A[],int n)//由含n个数据的数组A生成循环链表,要求链表有序并且无值重复结点{LinkedList h;h=(LinkedList)malloc(sizeof(LNode));//申请结点h->next=h; //形成空循环链表for(i=0;i<n;i++){pre=h;p=h->next;while(p!=h && p->data<A[i]){pre=p; p=p->next;} //查找A[i]的插入位置if(p==h || p->data!=A[i]) //重复数据不再输入{s=(LinkedList)malloc(sizeof(LNode));s->data=A[i]; pre->next=s; s->next=p;//将结点s链入链表中}}//forreturn(h);}算法结束2、二叉树的层次遍历序列的第一个结点是二叉树的根。
实际上,层次遍历序列中的每个结点都是“局部根”。
确定根后,到二叉树的中序序列中,查到该结点,该结点将二叉树分为“左根右”三部分。
若左、右子树均有,则层次序列根结点的后面应是左右子树的根;若中序序列中只有左子树或只有右子树,则在层次序列的根结点后也只有左子树的根或右子树的根。
这样,定义一个全局变量指针R,指向层次序列待处理元素。
算法中先处理根结点,将根结点和左右子女的信息入队列。
然后,在队列不空的条件下,循环处理二叉树的结点。
队列中元素的数据结构定义如下:typedef struct{ int lvl; //层次序列指针,总是指向当前“根结点”在层次序列中的位置int l,h; //中序序列的下上界int f; //层次序列中当前“根结点”的双亲结点的指针int lr; // 1—双亲的左子树 2—双亲的右子树}qnode;BiTree Creat(datatype in[],level[],int n)//由二叉树的层次序列level[n]和中序序列in[n]生成二叉树。
n是二叉树的结点数{if (n<1) {printf(“参数错误\n”); exit(0);}qnode s,Q[]; //Q是元素为qnode类型的队列,容量足够大init(Q); int R=0; //R是层次序列指针,指向当前待处理的结点BiTree p=(BiTree)malloc(sizeof(BiNode)); //生成根结点p->data=level[0]; p->lchild=null; p->rchild=null; //填写该结点数据for (i=0; i<n; i++) //在中序序列中查找根结点,然后,左右子女信息入队列if (in[i]==level[0]) break;if (i==0) //根结点无左子树,遍历序列的1—n-1是右子树{p->lchild=null;s.lvl=++R; s.l=i+1; s.h=n-1; s.f=p; s.lr=2; enqueue(Q,s);}else if (i==n-1) //根结点无右子树,遍历序列的1—n-1是左子树{p->rchild=null;s.lvl=++R; s.l=1; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);}else //根结点有左子树和右子树{s.lvl=++R; s.l=0; s.h=i-1; s.f=p; s.lr=1;enqueue(Q,s);//左子树有关信息入队列s.lvl=++R; s.l=i+1;s.h=n-1;s.f=p; s.lr=2;enqueue(Q,s);//右子树有关信息入队列}while (!empty(Q)) //当队列不空,进行循环,构造二叉树的左右子树{ s=delqueue(Q); father=s.f;for (i=s.l; i<=s.h; i++)if (in[i]==level[s.lvl]) break;p=(bitreptr)malloc(sizeof(binode)); //申请结点空间p->data=level[s.lvl]; p->lchild=null; p->rchild=null; //填写该结点数据if (s.lr==1) father->lchild=p;else father->rchild=p; //让双亲的子女指针指向该结点if (i==s.l){p->lchild=null; //处理无左子女s.lvl=++R; s.l=i+1; s.f=p; s.lr=2; enqueue(Q,s);}else if (i==s.h){p->rchild=null; //处理无右子女s.lvl=++R; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);}else{s.lvl=++R; s.h=i-1; s.f=p; s.lr=1; enqueue(Q,s);//左子树有关信息入队列s.lvl=++R; s.l=i+1; s.f=p; s.lr=2; enqueue(Q,s); //右子树有关信息入队列}}//结束while (!empty(Q))return(p);}//算法结束3、矩阵中元素按行和按列都已排序,要求查找时间复杂度为O(m+n),因此不能采用常规的二层循环的查找。
可以先从右上角(i=a,j=d)元素与x比较,只有三种情况:一是A[i,j]>x,这情况下向j 小的方向继续查找;二是A[i,j]<x,下步应向i大的方向查找;三是A[i,j]=x,查找成功。
否则,若下标已超出范围,则查找失败。
void search(datatype A[ ][ ], int a,b,c,d, datatype x)//n*m矩阵A,行下标从a到b,列下标从c到d,本算法查找x是否在矩阵A中.{i=a; j=d; flag=0; //flag是成功查到x的标志while(i<=b && j>=c)if(A[i][j]==x) {flag=1;break;}else if (A[i][j]>x) j--; else i++;if(flag) printf(“A[%d][%d]=%d”,i,j,x); //假定x为整型.else printf(“矩阵A中无%d 元素”,x);}算法search结束。
[算法讨论]算法中查找x的路线从右上角开始,向下(当x>A[i,j])或向左(当x<A[i,j])。
向下最多是m,向左最多是n。
最佳情况是在右上角比较一次成功,最差是在左下角(A[b,c]),比较m+n次,故算法最差时间复杂度是O(m+n)。
4、设计一个尽可能的高效算法输出单链表的倒数第K个元素。
5、请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink-rlink法存储。
6、我们用l代表最长平台的长度,用k指示最长平台在数组b中的起始位置(下标)。
用j 记住局部平台的起始位置,用i指示扫描b数组的下标,i从0开始,依次和后续元素比较,若局部平台长度(i-j)大于l时,则修改最长平台的长度k(l=i-j)和其在b中的起始位置(k=j),直到b数组结束,l即为所求。
void Platform (int b[ ], int N)//求具有N个元素的整型数组b中最长平台的长度。
{l=1;k=0;j=0;i=0;while(i<n-1){while(i<n-1 && b[i]==b[i+1]) i++;if(i-j+1>l) {l=i-j+1;k=j;} //局部最长平台i++; j=i; } //新平台起点printf(“最长平台长度%d,在b数组中起始下标为%d”,l,k);}// Platform7、证明由二叉树的中序序列和后序序列,也可以唯一确定一棵二叉树。
当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是右子树的中序序列。
若i=1,则S1是根,这时二叉树的左子树为空,右子树的结点数是m-1,则{S2,S3,…,Sm}和{P1,P2,…,Pm-1}可以唯一确定右子树,从而也确定了二叉树。
若i=m,则Sm是根,这时二叉树的右子树为空,左子树的结点数是m-1,则{S1,S2,…,Sm-1}和{P1,P2,…,Pm-1}唯一确定左子树,从而也确定了二叉树。
最后,当1<i<m时,Si把中序序列分成{S1,S2,…,Si-1}和{Si+1,Si+2,…,Sm}。
由于后序遍历是“左子树—右子树—根结点”,所以{P1,P2,…,Pi-1}和{Pi,Pi+1,…Pm-1}是二叉树的左子树和右子树的后序遍历序列。
因而由{S1,S2,…,Si-1}和{P1,P2,…,Pi-1}可唯一确定二叉树的左子树,由{Si+1,Si+2,…,Sm}和{Pi,Pi+1,…,Pm-1}可唯一确定二叉树的右子树。
8、有一种简单的排序算法,叫做计数排序(count sorting)。
这种排序算法对一个待排序的表(用数组表示)进行排序,并将排序结果存放到另一个新的表中。
必须注意的是,表中所有待排序的关键码互不相同,计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键码比该记录的关键码小,假设针对某一个记录,统计出的计数值为c,那么,这个记录在新的有序表中的合适的存放位置即为c。
(1) (3分)给出适用于计数排序的数据表定义;(2) (7分)使用Pascal或C语言编写实现计数排序的算法;(3) (4分)对于有n个记录的表,关键码比较次数是多少?(4) (3分)与简单选择排序相比较,这种方法是否更好?为什么?9、假设以I和O分别表示入栈和出栈操作。
栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为非法序列。