苏州大学数据库期末练习(附答案)
数据库期末考试及答案

数据库期末考试及答案数据库原理期末考试试题一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,错选、多选或未选均无分。
1. 要保证数据库的数据独立性,需要修改的是( A )A.三层模式之间的两种映射 B.模式与内模式 C.模式与外模式 D.三层模式2. 下列四项中说法不正确的是( C )A.数据库减少了数据冗余B.数据库中的数据可以共享C.数据库避免了一切数据的重复D.数据库具有较高的数据独立性3. 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是( C )A.多对多 B.一对一 C.多对一 D.一对多4.将E-R模型转换成关系模型,属于数据库的( C )A.需求分析 B.概念设计 C.逻辑设计 D.物理设计5.五种基本关系代数运算是( A )A.∪,—,×,π和σ B.∪,—,,π和σC.∪,∩,×,π和σ D.∪,∩,,π和σ6.下列聚合函数中不忽略空值 (NULL) 的是( C )。
A.SUM (列名) B.MAX (列名) C.COUNT ( * ) D.A VG (列名) 7. SQL中,下列涉及空值的操作,不正确的是( C )。
A. AGE IS NULLB. AGE IS NOT NULLC. AGE = NULLD. NOT (AGE IS NULL) 9.在视图上不能完成的操作是( C )A. 更新视图B. 查询C. 在视图上定义新的基本表D. 在视图上定义新视图10. 关系数据模型的三个组成部分中,不包括( C )14.已知关系R={A,B,C,D,E,F},F={A →C,BC→DE,D→E,CF→B}。
则(AB)F+的闭包是( B )A.ABCDEF B.ABCDE C.ABC D.AB 15.设有关系R(A,B,C)和S(C,D)。
与SQL 语句select A,B,D from R,S where R.C=S.C等价的关系代数表达式是( B )A.σR.C=S.C(πA,B,D(R×S)) B.πA,B,D(σR,C= S.C(R×S)) C.σR.C=S.C((πA,B (R))×(πD(S))) D.σR,C=S.C(πD((πA,B(R))×S)) 三、填空题(本大题共20空,每空1分,共20分)错填、不填均无分。
2022年苏州大学计算机科学与技术专业《数据库原理》科目期末试卷B(有答案)

2022年苏州大学计算机科学与技术专业《数据库原理》科目期末试卷B(有答案)一、填空题1、设某数据库中有商品表(商品号,商品名,商品类别,价格)。
现要创建一个视图,该视图包含全部商品类别及每类商品的平均价格。
请补全如下语句: CREATE VIEW V1(商品类别,平均价格)AS SELECT商品类别,_____FROM商品表GROUP BY商品类别;2、数据库管理系统的主要功能有______________、______________、数据库的运行管理以及数据库的建立和维护等4个方面。
3、数据库内的数据是______的,只要有业务发生,数据就会更新,而数据仓库则是______的历史数据,只能定期添加和刷新。
4、设某数据库中有作者表(作者号,城市)和出版商表(出版商号,城市),请补全如下查询语句,使该查询语句能查询作者和出版商所在的全部不重复的城市。
SELECT城市FROM作者表_____SELECT城市FROM出版商表;5、从外部视图到子模式的数据结构的转换是由______________实现;模式与子模式之间的映象是由______________实现;存储模式与数据物理组织之间的映象是由______________实现。
6、在SQL Server 2000中,某数据库用户User在此数据库中具有对T 表数据的查询和更改权限。
现要收回User对T表的数据更改权,下述是实现该功能的语句,请补全语句。
_____UPDATE ON T FROM User;7、关系模型由______________、______________和______________组成。
8、在SQL Server 2000中,新建了一个SQL Server身份验证模式的登录账户LOG,现希望LOG在数据库服务器上具有全部的操作权限,下述语句是为LOG授权的语句,请补全该语句。
EXEC sp_addsrvrolemember‘LOG’,_____;9、使某个事务永远处于等待状态,得不到执行的现象称为______。
数据库期末考试试题及答案

数据库期末考试试题及答案一、选择题(每题2分,共20分)1. 在关系数据库中,用来表示实体之间关系的是:A. 属性B. 关系C. 键D. 表答案:B2. SQL语言中的“SELECT”语句用于:A. 插入数据B. 更新数据C. 查询数据D. 删除数据答案:C3. 数据库管理系统(DBMS)的主要功能不包括:A. 数据存储B. 数据查询C. 数据备份D. 数据加密答案:D4. 以下哪个不是数据库设计中的范式:A. 第一范式(1NF)B. 第二范式(2NF)C. 第三范式(3NF)D. 第四范式(4NF)答案:D5. 在数据库中,主键的作用是:A. 唯一标识表中的记录B. 存储数据C. 建立表与表之间的关系D. 排序数据答案:A6. 事务的四大特性不包括:A. 原子性B. 一致性C. 隔离性D. 持久性答案:D7. 以下哪个是数据库的并发控制技术:A. 索引B. 视图C. 锁D. 触发器答案:C8. 数据库的完整性约束包括:A. 实体完整性B. 参照完整性C. 用户定义完整性D. 所有以上答案:D9. 数据库的恢复技术不包括:A. 事务日志B. 检查点C. 数据备份D. 索引答案:D10. 在数据库中,视图的作用是:A. 提高查询速度B. 简化用户操作C. 保护数据D. 存储数据答案:B二、简答题(每题10分,共30分)1. 解释什么是数据库的规范化,并说明其目的是什么?答:数据库的规范化是指按照一定的规则将数据库中的数据组织起来,以减少数据冗余和提高数据的一致性。
其目的是确保数据库的设计是合理的,避免数据的异常,如插入异常、删除异常和更新异常。
2. 描述数据库事务的ACID属性,并解释每个属性的含义。
答:事务的ACID属性包括:- 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成,不会结束在中间某个点。
- 一致性(Consistency):事务必须保证数据库从一个一致的状态转移到另一个一致的状态。
大学《数据库》期末试卷及答案(五)

大学《数据库》期末试卷及答案一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要 求的,错选、多选或未选均无分。
1. 数据库系统的特点是( )、数据独立、减少数据冗余、避免数据不一致和加强了数据保护。
A .数据共享B .数据存储C .数据应用D .数据保密2. 数据库系统中,物理数据独立性是指( )。
A .数据库与数据库管理系统的相互独立B .应用程序与DBMS 的相互独立C .应用程序与存储在磁盘上数据库的物理模式是相互独立的D .应用程序与数据库中数据的逻辑结构相互独立3. 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是( )。
A .外模式B .内模式C .存储模式D .模式4. E-R 模型用于数据库设计的哪个阶段( )?A .需求分析B .概念结构设计C .逻辑结构设计D .物理结构设计5. 现有关系表:学生(宿舍编号,宿舍地址,学号,姓名,性别,专业,出生日期)的主码是( )。
A .宿舍编号 B .学号C .宿舍地址,姓名D .宿舍编号,学号6. 自然连接是构成新关系的有效方法。
一般情况下,当对关系R 和S 使用自然连接时,要求R 和S 含有一个或多个共有的( )。
A .元组B .行C .记录D .属性7. 下列关系运算中,( )运算不属于专门的关系运算。
A .选择 B .连接C .广义笛卡尔积D .投影8. SQL 语言具有( )的功能。
(考 生 答 题 不 得 超 过 此 线)A.关系规范化、数据操纵、数据控制B.数据定义、数据操纵、数据控制C.数据定义、关系规范化、数据控制D.数据定义、关系规范化、数据操纵9.如果在一个关系中,存在某个属性(或属性组),虽然不是该关系的主码或只是主码的一部分,但却是另一个关系的主码时,称该属性(或属性组)为这个关系的()A.候选码B.主码C. 外码D. 连接码10.下列关于关系数据模型的术语中,()术语所表达的概念与二维表中的“行”的概念最接近?A.属性B.关系C. 域D. 元组11.假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。
数据库期末试题及答案

数据库期末试题及答案题目:数据库期末试题及答案一、选择题(共20小题,每题2分,共40分)1. 数据库系统的基本特点是什么?A. 数据共享B. 数据独立性C. 数据多样性D. 数据冗余答案:B. 数据独立性2. 下面哪种数据库模型是层次结构模型的扩展?A. 关系模型B. 网络模型C. 对象模型D. NoSQL模型答案:B. 网络模型3. 数据库事务的ACID特性中,C代表什么?A. 一致性B. 原子性C. 持久性D. 隔离性答案:A. 一致性4. 在关系数据库中,SQL是用于进行什么操作的语言?A. 数据定义B. 数据操作C. 数据查询D. 数据删除答案:B. 数据操作5. 下面哪种SQL语句用于向表中插入数据?A. UPDATEB. DELETEC. INSERT INTOD. SELECT答案:C. INSERT INTO6. 在关系数据库中,外键用于实现什么样的数据关系?A. 一对一关系B. 一对多关系C. 多对多关系D. 层次关系答案:B. 一对多关系7. 关系数据库中,一个属性的值在给定的关系模式中是唯一的,这个属性被称为什么?A. 主键B. 外键C. 候选键D. 任意键答案:A. 主键8. 下面哪种关系操作用于将两个表连接?A. JOINB. UNIONC. INSERTD. DELETE答案:A. JOIN9. 下面哪种关系操作用于从表中删除数据?A. DELETEB. UPDATEC. SELECTD. INSERT INTO答案:A. DELETE10. 下面哪种数据库索引类型可以加快对表中数据的查找操作?A. B-tree索引B. Hash索引C. R-tree索引D. Full-text索引答案:A. B-tree索引11. 下面哪种关系型数据库是开源的?A. OracleB. Microsoft SQL ServerC. MySQLD. IBM DB2答案:C. MySQL12. 以下哪个选项是关系数据库中的一种范式?A. SqliteB. ACIDC. NoSQLD. 3NF答案:D. 3NF13. 一个事务的隔离级别可以通过什么来设置?A. SQL语句B. 数据库引擎C. 编程语言D. 操作系统答案:B. 数据库引擎14. 在关系数据库中,使用什么关系操作可以用于将表中的数据按特定的顺序排列?A. ORDER BYB. GROUP BYC. HAVINGD. WHERE答案:A. ORDER BY15. 下面哪个数据库对象用于存储存储过程的代码?A. 视图B. 索引C. 函数D. 存储过程答案:D. 存储过程16. "Group By"关键字在SQL中的作用是什么?A. 过滤数据B. 分组数据C. 排序数据D. 连接数据答案:B. 分组数据17. 在关系数据库中,什么是范式?A. 数据完整性的要求B. 数据冗余的要求C. 数据分组的要求D. 数据结构的要求答案:A. 数据完整性的要求18. 数据库系统的并发控制机制是为了解决什么问题?A. 数据安全性B. 数据恢复性C. 数据完整性D. 数据一致性答案:D. 数据一致性19. 下面哪个操作符在SQL中用于模糊查询?A. LIKEB. INC. EXISTSD. BETWEEN答案:A. LIKE20. 下面哪种数据库模型用于描述数据的层次结构?A. 关系模型B. 网络模型C. 对象模型D. 层次模型答案:D. 层次模型二、简答题(共5题,每题10分,共50分)1. 请简要介绍关系数据库的三个基本模型。
数据库期末试题及答案-复习必备

数据库试题经典问题一、填空题(共9题,每空1分,共15分)1.将数据库从SQL Server实例中删除,即在逻辑上将数据文件和日志文件与服务器相脱离,但文件并不从磁盘上删除,此操作称为_________,可通过_______将其重新加载到SQL Server实例中。
2.SQL Server中用于服务器的所有初始化信息和系统级信息的的系统数据库是_______________.3.打开数据库student,使之成为当前数据库,可以使用语句______________。
4.使用T-SQL语句创建存储过程时,若要求对存储过程的定义文本进行加密,应使用_________子句。
5.若要删除sutdent表的全部数据,数据删除后不可撤销,应使用语句____________,若想删除student数据表,应使用语句________________。
6.若要对数据库中的对象进行改名,就使用的系统存储过程是_____________. 7.Sql Server的数据库文件分为数据文件和__________,其中数据文件又分为_________和__________.8.在Sql Server中,按触发的时机,触发器可分为__________和________. 9.在Sql Server的事务处理中,开启一个事务可用Begin Transaction,提交事和撤销事务应使用____________和___________。
二、简答题(共3题,每题7分,共21分)1.在数据库端编程,主要有自定义函数、存储过程和触发器三种形式,请比较一下这三种方式的异同.2.SqlServer有哪些系统数据库,各自的作用是什么?3.数据库中的常用完整性有几种?在Sql Server主要通过什么方式实现?三、应用题(共6题,本题共54分。
)1.创建名为“Love”的数据库,其中主数据文件为Lovedat。
mdf,初始大小为8M,增长大小为1M,日志文件为Lovedat。
数据库期末考试试题及答案
数据库期末考试试题及答案一、选择题(每题2分,共20分)1. 在关系数据库中,用于查询数据的SQL语句是:A. SELECTB. UPDATEC. INSERT INTOD. DELETE2. 下列哪个不是数据库的三大范式之一?A. 第一范式(1NF)B. 第二范式(2NF)C. 第三范式(3NF)D. 第四范式(4NF)3. 以下哪个选项不是数据库设计阶段的任务?A. 需求分析B. 概念设计C. 逻辑设计D. 物理设计4. 在数据库中,用于更新表中数据的SQL语句是:A. SELECTB. UPDATEC. DELETED. INSERT INTO5. 以下哪个是数据库事务的四大特性之一?A. 原子性(Atomicity)B. 一致性(Consistency)C. 隔离性(Isolation)D. 持久性(Durability)二、简答题(每题10分,共30分)1. 简述数据库管理系统(DBMS)的主要功能。
2. 解释什么是外键,并说明其在数据库中的作用。
3. 描述数据库备份和恢复的重要性及基本步骤。
三、应用题(每题25分,共50分)1. 假设你是一个数据库管理员,需要为一个在线书店设计数据库。
请列出至少五个实体,并为每个实体设计至少三个属性。
2. 给定以下SQL查询语句:```SELECT AuthorName, COUNT(*) AS BookCountFROM BooksJOIN Authors ON Books.AuthorID = Authors.AuthorIDGROUP BY AuthorNameORDER BY BookCount DESC;```请解释该查询语句的功能,并描述其可能的输出结果。
四、案例分析题(共30分)假设你负责维护一个大学的学生信息系统。
请根据以下场景回答问题:1. 描述如何使用SQL语句添加一个新学生记录。
2. 如果需要查询所有计算机科学系学生的姓名和学号,应使用什么SQL查询语句?3. 假设系统需要支持学生选课功能,描述如何设计相应的数据库表和关系。
数据库期末考试试题及答案
数据库期末考试试题及答案第一部分:选择题(共20题,每题2分,共40分)1. 数据库是用来存储和管理什么类型的数据?a) 文件数据b) 网络数据c) 结构化数据d) 非结构化数据答案:c) 结构化数据2. 数据库系统的基本组成部分包括以下哪几个方面?a) 数据库管理系统(DBMS)b) 数据库应用程序c) 数据库模型d) 数据库管理员答案:a) 数据库管理系统(DBMS),b) 数据库应用程序,c) 数据库模型3. 下面哪个是关系数据库模型的特点?a) 数据以文件形式存储b) 数据以表格形式存储c) 数据以树形结构存储d) 数据以图形结构存储答案:b) 数据以表格形式存储4. 数据库的完整性约束包括以下几种类型?a) 实体完整性b) 参照完整性c) 域完整性d) 属性完整性答案:a) 实体完整性,b) 参照完整性,c) 域完整性,d) 属性完整性5. 数据库事务的ACID特性包括以下哪几个方面?a) 原子性b) 一致性c) 隔离性d) 持久性答案:a) 原子性,b) 一致性,c) 隔离性,d) 持久性6. 关系数据库中,外键用来表示什么类型的关系?a) 一对一关系b) 一对多关系c) 多对多关系d) 多层次关系答案:b) 一对多关系7. 下面哪个是数据库查询语言?a) Javab) C++c) SQLd) HTML答案:c) SQL8. 在数据库中,一个事务的隔离级别有哪几种选择?a) READ COMMITTEDb) REPEATABLE READc) SERIALIZABLEd) READ UNCOMMITTED答案:a) READ COMMITTED,b) REPEATABLE READ,c) SERIALIZABLE,d) READ UNCOMMITTED9. 数据库索引的作用是什么?a) 提高数据访问的速度b) 减少数据存储的空间c) 保证数据的一致性d) 控制数据的权限答案:a) 提高数据访问的速度10. 数据库范式用来做什么?a) 优化数据库查询b) 规范数据库模型c) 压缩数据库存储d) 加密数据库数据答案:b) 规范数据库模型11. 数据库触发器用来做什么?a) 检查数据的有效性b) 定期备份数据库c) 自动执行特定操作d) 创建数据库索引答案:c) 自动执行特定操作12. 数据库备份的作用是什么?a) 保护数据免受损失b) 提高数据库查询速度c) 减少数据存储空间d) 控制数据的权限答案:a) 保护数据免受损失13. 数据库连接是指什么?a) 数据库之间的关系b) 数据库中的数据关系c) 应用程序访问数据库的接口d) 数据库中的表之间的关系答案:c) 应用程序访问数据库的接口14. 数据库主键的作用是什么?a) 提高数据查询速度b) 控制数据的权限c) 唯一标识一条记录d) 加密数据库数据答案:c) 唯一标识一条记录15. 数据库视图是什么?a) 物理存储的数据b) 存储过程c) 虚拟表d) 数据库备份文件答案:c) 虚拟表16. 数据库设计的范式分为几个级别?a) 1NF, 2NF, 3NF, BCNFb) 1NF, 2NF, 3NF, 4NFc) 1NF, 2NF, 3NFd) 1NF, 2NF, 3NF, 5NF答案:b) 1NF, 2NF, 3NF, 4NF17. 数据库连接的类型包括以下哪几种?a) 内连接b) 外连接c) 自连接d) 所有答案都正确答案:d) 所有答案都正确18. 数据库中的事务是?a) 一条SQL语句b) 一组SQL语句c) 一个数据库操作d) 一个用户操作答案:b) 一组SQL语句19. 数据库管理系统(DBMS)的作用是什么?a) 存储和管理数据b) 控制和管理数据库访问c) 进行数据库备份和恢复d) 所有答案都正确答案:d) 所有答案都正确20. 数据库中的事务日志是用来做什么?a) 记录数据库的结构b) 记录数据库的访问权限c) 记录数据库操作的序列d) 记录数据库查询结果答案:c) 记录数据库操作的序列第二部分:填空题(共10题,每题2分,共20分)1. 触发器是通过在数据库中定义______,在特定的数据更新、插入、删除等操作发生时被自动执行。
数据库期末考试试题及答案
数据库期末考试试题及答案一、选择题1. 在数据库中,用于描述数据和数据之间关系的是:A. 表B. 视图C. 索引D. 触发器2. 关系型数据库中,用于唯一标识每条记录的是:A. 主键B. 外键C. 候选键D. 参照键3. SQL语言中,用于查询数据的关键字是:A. SELECTB. INSERTC. UPDATED. DELETE4. 在关系型数据库设计中,避免数据冗余和更新异常的范式是:A. 第一范式(1NF)B. 第二范式(2NF)C. 第三范式(3NF)D. BCNF5. 数据库事务的四个基本特性是:A. 原子性、一致性、隔离性、持久性B. 并发性、一致性、持久性、可靠性C. 原子性、并发性、隔离性、持久性D. 一致性、并发性、隔离性、可靠性二、填空题1. 在SQL中,创建数据库的命令是___________,删除数据库的命令是_____________。
2. 一个关系表中可以有多个___________,但只能有一个___________。
3. 在SQL查询中,可以使用___________关键字来限制返回的数据条数。
4. 当需要对数据库中的数据进行更新操作时,应使用___________语句。
5. 数据库设计中,为了提高查询效率,常常对某些字段建立___________。
三、简答题1. 请简述数据库的三级模式架构及其作用。
2. 什么是数据库的完整性约束?请举例说明。
3. 解释数据库中的连接操作,并举例说明内连接和左外连接的区别。
4. 请描述事务的隔离级别以及它们如何影响数据库操作。
5. 什么是数据库的规范化?简述其目的和意义。
四、综合题1. 假设有一个学生信息管理系统的数据库,包含学生表(学生ID,姓名,年龄,班级)和成绩表(学生ID,课程ID,分数)。
请编写SQL语句实现以下操作:(1) 创建学生表和成绩表。
(2) 向学生表中插入一条学生记录。
(3) 查询所有学生的姓名和班级。
(4) 查询每个学生的总成绩。
数据库试题期末考试及答案
数据库试题期末考试及答案数据库期末考试试题一、选择题(每题2分,共20分)1. 数据库管理系统(DBMS)的主要功能是()。
A. 数据存储B. 数据管理C. 数据分析D. 数据加密2. 关系型数据库的存储结构是()。
A. 树形结构B. 网状结构C. 线性结构D. 表格结构3. SQL语言中的“SELECT”语句用于()。
A. 插入数据B. 更新数据C. 查询数据D. 删除数据4. 在关系数据库中,数据的完整性约束包括()。
A. 实体完整性和参照完整性B. 数据完整性和参照完整性C. 实体完整性和用户定义完整性D. 参照完整性和用户定义完整性5. 数据库设计中,范式理论的目的是()。
A. 提高查询效率B. 减少数据冗余C. 增强数据安全性D. 优化存储空间...(此处省略其他选择题,共10题)二、简答题(每题5分,共20分)1. 简述数据库的三级模式结构。
2. 解释什么是事务的ACID属性。
3. 什么是数据库的并发控制?4. 描述什么是数据库的规范化过程。
三、应用题(每题15分,共30分)1. 假设你正在设计一个图书馆管理系统的数据库,请列出至少5个实体,并说明它们之间的关系。
2. 编写一个SQL查询,用于找出所有借阅了超过5本书的读者的姓名和借阅数量。
四、综合题(每题15分,共30分)1. 描述在数据库中实现数据备份和恢复的一般步骤。
2. 给出一个场景,说明如何使用数据库视图来提高数据安全性。
五、论述题(共10分)1. 论述数据库索引在提高查询性能中的作用及其潜在的缺点。
数据库期末考试答案一、选择题答案1. B2. D3. C4. A5. B...(此处省略其他选择题答案)二、简答题答案1. 数据库的三级模式结构包括:外模式(用户视图)、概念模式(逻辑结构)和内模式(存储结构)。
2. 事务的ACID属性包括:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空题1、 在任何需要数据反转的问题里,首先应考虑用 栈 来保存数据。
2、在顺序线性表下,根据位置来进行元素的插入和删除,主要的时间花费在 移动后续元素位置 ;在单链表下进行元素的插入和删除,主要时间花费在 找到目标元素位置 。
3、 具有n 个顶点的无向图,至少要有 n-1 条边,才能保证该图是连通图。
4、 用二分查找方法进行查找,要求数据文件应为有序序列,且限于顺序存储结构。
5、在哈希查找中,评判一个哈希函数优劣的两个主要指标是: 散列分布均匀性和冲突解决方法。
6、由三个结点构成的二叉树,共有 5 种不同的形状。
7、高度为h (h ≥ 1)的完全二叉树的结点数在2n-1和 2n -1之间。
(设只有1个根结点的二叉树高度为1)8、对于有n (n ≥ 1)个顶点的连通图,其生成树有 n-1 条无向边。
n(n ≥ 1)个顶点的有向完全图有 n(n-1) 条有向边。
9、图的深度优先搜索遍历类似于树的 先序 遍历。
图的广度优先搜索遍历需要用到的辅助数据结构是 队列 。
10、以关键字比较为基础的排序方法所能达到的最好时间复杂度为 n 。
排序过程中总的关键字比较次数与记录的初始排列顺序无关的排序方法有 选择排序 。
稳定的算法有 冒泡排序、插入排序 。
二、应用题1、简述拓扑排序的实际意义,并写出下图的1个深度优先拓扑序列和1个广度优先拓扑序列。
拓扑排序的实际意义:如果按照拓扑排序的顶点次序,在开始每一项活动时,能够保证它的所有前驱活动都已经完成,从而使整个工程顺序进行,不会出现冲突情况。
DFS:acfhdgbeBFS:acdfhbeg2、已知一个无向连通图如图所示: 134ab d ec f 222g h212111) 请用Prim 算法构造该无向图的最小生成树,给出详细求解过程。
2) 分别用邻接矩阵和邻接表这两种存储结构表示该无向图。
3) 请写出一个合理的从顶点a 出发得到的DFS 序列(假设邻接表中边表按照递增序)。
4) 请写出一个合理的从顶点a 出发得到的BFS 序列(假设邻接表中边表按照递增序)。
3、简述插入排序的基本思想,并对以下关键字集合,{72,73,71,23,94,16,05,68}进行插入排序,计算总的比较次数。
1:72 73 71 23 94 16 05 682:71 72 73 23 94 16 05 683:23 71 72 73 94 16 05 684:23 71 72 73 94 16 05 685:16 23 71 72 73 94 05 686:05 16 23 71 72 73 94 687:05 16 23 68 71 72 73 944、已知如下所示长度为12的表(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec),试按表中元素的字符串大小顺序依次插入一棵初始为空的二叉查找树。
二叉查找树是如下定义的:(1) 左子树不空,则左子树上的所有结点的值均小于根结点的值(2) 右子树不空,则右子树上的所有结点的值均大于根结点的值在二叉查找树中删除一个给定的结点p有三种情况(1) 结点p无左右子树,则直接删除该结点,修改父节点相应指针(2) 结点p有左子树(右子树),则把p的左子树(右子树)接到p的父节点上(3) 左右子树同时存在,则有三种处理方式a. 找到结点p的中序直接前驱结点s,把结点s的数据转移到结点p,然后删除结点s,由于结点s为p的左子树中最右的结点,因而s无右子树,删除结点s可以归结到情况(2)。
严蔚敏数据结构P230-231就是该处理方式。
b. 找到结点p的中序直接后继结点s,把结点s的数据转移到结点p,然后删除结点s,由于结点s为p的右子树总最左的结点,因而s无左子树,删除结点s可以归结到情况(2)。
算法导论第2版P156-157该是该处理方式。
c. 找到p的中序直接前驱s,将p的左子树接到父节点上,将p的右子树接到s的右子树上,然后删除结点p。
(1)画出插入完成之后的二叉查找树;(2) 1+2*2+3*3+4*3+5*2+6*1)/12=42/12=3.5(3)画出删除Jan后的二叉查找树。
三、算法设计题1、设计一个递归算法,判断二叉树中是否含有度为1的结点。
template<class Entry>bool Binary_tree<entry>::recurisive_has_degree1(Binary_node<Entry>*sub_root){if (sub_root==NULL)return false;if (sub_root->left==NULL && sub_root->right==NULL)return false;if (sub_root->left!=NULL && sub_root->right!=NULL)returnrecursive_has_degree1(sub_root->left)||recursive_has_degree1(sub_root->right);elsereturn true;}2、已知线性表以带头结点的单链表作为存储结构。
试编写算法删除原表中所有值大于min且小于max的元素(若表中存在这样的元素),并将被删结点形成一个新链表返回的算法。
template<class List_entry>nod<List_entry> *List<List_entry>::deletemintomax(List_entry &min, List_entry& max){Node<List_entry>*p,*q;Node<List_entry>*New_head,*r;New_head=new Node<List_entry>();r=new_head;p = head;while(p&&(p->next){if(p->next->entry>min&&p->next->next->entry<max){q=p->next;;p->next=q->next;r->next=q; r=q;}else{p=p->next}}r->next=null;return new_head;}单链表int Stack :: size() const{Node *temp = top_node;int count = 0;while (temp != NULL) {temp = temp ->next;count++;}return count;}int Stack :: size() const{return recursive_size(top_node);}int Stack :: recursive_size ( Node *L ) const{if (L==NULL)return 0;elsereturn 1+recursive_size(L->next);}二叉树二叉链表template <class Entry>int Binary_tree<Entry> :: recursive_size2(Binary_node<Entry> *sub_root) const {int l,r;if(sub_root ==NULL) return 0;l= recursive_size2 (sub_root->left);r= recursive_size2 (sub_root->right);if (sub_root->left!=NULL&& sub_root-> right!=NULL)return l+r+1;elsereturn l+r;}2、template <class Entry>Binary_node<Entry>* Binary_tree<Entry> :: findbrother(Binary_node<Entry> *sub_root,Binary_node<Entry> *p){if (sub_root ==NULL || p==NULL)return NULL;if (sub_root ==p)return NULL;if (sub_root->left==p)return sub_root->right;if (sub_root->right==p)return sub_root->left;Binary_node<Entry> *q=findbrother(sub_root->left, p);return findbrother(sub_root->right,p);}}template <class Entry>bool Binary_tree<Entry> :: ismorphic(Binary_node<Entry> * T1, Binary_node<Entry> *T2){if (T1==NULL&&T2==NULL)return true;if (T1!=NULL&&T2!=NULL)if (ismorphic (T1->left,T2->left))if (ismorphic (T1->right,T2->right))return true;return false;}排序作业一设待排序数据的关键字为(2667359-643821054)(1)画出直接插入排序数据表的变化过程,并计算出总的关键字比较次数和记录的移动次数(记录的赋值即认为一次移动)。
(2)以首元素为枢轴元素进行快速排序,画出排序过程的递归调用树,并计算出总的比较次数。
插入排序过程趟数26 67 35 9 -6 43 82 10 54 插入比较次数移动次数1 26 67 67 1 02 26 67 35 35 2 33 26 35 67 9 9 3 54 9 26 35 67 -6 -6 4 65 -6 9 26 35 67 43 43 2 36 -6 9 26 35 43 67 82 82 1 07 -6 9 26 35 43 67 82 10 10 6 78 -6 9 10 26 35 43 67 82 54 54 3 4结果-6 9 10 26 35 43 54 67 82 22总比较次数=8+2+1+4+3+2+1=21二、画出对序列(512,275,908,677,503,765,612,897,170 )进行归并排序的递归树,并计算出总的比较次数。