JAVAWEB数据结构课程考试系统

JAVAWEB数据结构课程考试系统
JAVAWEB数据结构课程考试系统

本科生毕业论文

题目:基于JAVA WEB的数据结构课程考试系统

姓名:***

学号:***

专业:计算机科学与技术

年级:2011级

学院:信息科学技术

完成日期:2015年4月

指导教师:***

本科生毕业论文独创性声明

本人声明所呈交的毕业论文是本人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注和致谢的地方外,本论文中没有抄袭他人研究成果和伪造数据等行为。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。

论文作者签名:日期:20年月日

本科生毕业论文使用授权声明

海南师范大学有权保留并向国家有关部门或机构送交毕业论文的复印件和磁盘,允许毕业论文被查阅和借阅。本人授权海南师范大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复印手段保存、汇编毕业论文。

论文作者签名:日期:20年月日

指导教师签名:日期:20年月日

目录

1绪论 (2)

1.1问题的提出 (2)

1.2系统开发目标 (2)

1.3开发工具的选择 (2)

1.4开发本系统的意义 (2)

2系统分析 (3)

2.1背景分析 (3)

2.2可行性分析 (3)

2.2.1技术可行性分析 (3)

2.2.2经济可行性 (4)

2.2.3方案可行性 (4)

2.3功能要求 (4)

3系统总体设计 (5)

3.1系统数据流图 (5)

3.2系统的功能模块层次图 (6)

3.3系统功能模块 (7)

4数据库设计 (9)

4.1数据字典 (9)

4.2实体关系图 (11)

4.3数据库的连接 (12)

5详细设计 (13)

5.1公共类设计 (13)

5.2在线考试模块设计 (14)

5.3成绩查询模块设计 (16)

5.4查看和修改考生考卷模块部分设计 (16)

5.5分数段统计模块设计 (16)

5.6试题维护模块设计 (17)

5.7考试信息设置维护管理模块设计 (17)

5.8用户管理模块设计 (18)

5.9个人信息维护模块设计 (19)

6系统测试 (19)

6.1系统运行环境 (19)

6.2测试目的 (20)

6.3各功能模块测试 (20)

6.3.1在线考试模块测试 (21)

6.3.2查看和修改试卷测试 (23)

6.3.3分数段统计测试 (24)

6.3.4成绩查询测试 (24)

6.3.5个人信息维护测试 (25)

6.3.6考题管理 (26)

6.3.7考试设置管理测试 (29)

6.3.8用户管理测试 (30)

7结论 (32)

致谢 (33)

参考文献 (34)

基于JAVA WEB的数据结构课程考试系统

作者:**指导教师:***

(海南师范大学信息科学技术学院,海口,571158)

摘要:此系统是一个基于JAVA的WEB在线考试系统,功能主要为学生可以在线考试和查询成绩。管理员可以设置试题和试卷,设置考题可以手动添加还可以批量EXCEL表格导入,还可以进行人员的管理。任课教师可以批改试卷,查询考试的具体信息。其中每个成员都能对自己的信息做修改。该系统能轻松取代传统考试的每个过程,教学过程中,学生能够利用此系统随时随地进行测试、结业考试等,教师能够便捷快速的组卷,组织考试,大大提高了教学效率。

系统采用浏览器/服务器(B/S)模式,系统架构为MVC模式,前端用到HTML,JS,CSS 等,后端利用JSP,JavaBean,Servlet等技术,数据存储采用SQLServer2005,服务器为Tomcat,开发工具用到DreamWeaver、MyEclipse等。

本文将依次从项目背景,设计意义,可行性分析,需求分析,总体设计,数据库设计,详细设计,系统功能测试各个方面对该系统进行全面的解析和介绍。

关键词:在线考试B/S MVC SQLServer2005JSP/JavaBean/servlet

Online examination system based on JSP in data structure

course

Author:***Tutor:Prof.***

(Department of Computer Science and Technology,School of Information Science and Technology,HaiNan Normal University,HaiKou,571158) ABSTRACT:This system is an online examination system based on JSP JAV A,the main function for the student online exam and query results.Administrators can set the test papers,test questions can be set manually add can also batch import EXCEL table,can also be used for personnel management.The teacher is marking examination papers,examination of the specific information query.Each member can do to modify the information on their own.The system can easily replace the traditional examination process.The system uses the browser/server(B/S) mode,the system architecture of MVC mode,the front end used HTML,JS,CSS,JavaBean,is using JSP,Servlet technology,data storage using SQLServer Server2005,Tomcat,DreamWeaver, MyEclipse and other development tools to use.

This will in turn from the project background,design,feasibility analysis,demand analysis, overall design,database design,detailed design,system functional testing of various aspects of the comprehensive analysis and introduction of the system.

Keywords:B/S MVC SQLServer2005JSP/JavaBean/servlet online examination

1绪论

1.1问题的提出

在传统考试当中,进行一次考试相当的困难,从教师出题,印刷试卷,组织考试,安排教师,批改试卷,分发试卷,公布成绩,得耗费许多人力,物力。随着信息化的发展普及,传统的考试显得越来越不能适应这个社会。随着计算机网络技术的发展,计算机硬件的飞跃,计算机软件技术的成熟,开发出一套切实可用的高效的在线考试系统很必要,它不但能够节省人力物力,节约环保,还能提高信息存储的安全度,更高效的提高教学效率。

1.2系统开发目标

结合教学实际情况,结合B/S架构的有点,目标是开发出一个基于B/S模式的java web在线考试系统。需要实现的功能有:为了防止作弊能够从题库随机抽取试题组成考卷,考试结束后系统能够对客观题自动评分,主观题由教师批改,教师能够设置学生分数,并且系统自动生成班级分数段统计信息,以便了解班级学生学习情况。

1.3开发工具的选择

由于JAVA的跨平台,开源,性能优异,所以本系统开发语言选择JAVA,在开发环境选择上,本系统采用MyEclipse,前台界面采用DreamWeaver,从数据库的性能效率以及考试系统的数据量和负载量方面考虑,数据库采用

sqlServer,web服务器方面采用开源的Tomcat服务器。

1.4开发本系统的意义

在互联网时代,网络早已渗入到生活的方方面面,教育体系也不例外,远程

考试、网络考试已经势在必行,除了要做到传统考试必须有的公平公正外,它还有一些新的特点。

1)考试管理方面:极大的方便教师从考试的题目设计,安排考试,实施考试,批改试卷,以及统计分数等全部工作,这些工作都实现了无纸化管理,使管理效率得到很大的提高,并且借助于数据库实现了教考分离。

2)考试便利方面:方便考生在随时随地都能进行测试,只要考试在有网络的情况下通过web浏览器连接到服务器,并且能够进行身份验证,使得每个考生的题目都很稳定和随机。

3)考试结果及时反馈方面:只要考生提交完试卷,客观题批改随即完成,待教师批改完主观题打完分数,学生能第一时间登陆系统查询分数和具体的对错信息,教师也能第一时间查看全部考试的成绩分布等情况。

2系统分析

2.1背景分析

当今社会,教育水平不断发展,一个重要的体现就是信息化,网络教育,在线考试等均是这方面的具体体现,在线考试越来越受到教育部门的重视,这也将带来一场新的变革,传统教育模式将逐渐被打破,进而持续推动教育发展。前面也对传统考试方式和在线考试方式作了对比,在线考试系统可以面向更多的考生和教育系统,只要准备足够大的题库,并且为试卷随机抽取一定量的考题就能有效遏制作弊现象,这也是现在比较常见的防止作弊方式,在大学英语四六级当中,同一个考场就有几套不同的试卷,但是这比四六级更有效的是每个人都有一套试卷。另外,它能让考生更灵活的参加考试,快速实现批改试卷、成绩反馈,也更加公平。

2.2可行性分析

2.2.1技术可行性分析

开发本系统在技术上是可行的。一台PC机,装上IDE开发环境,利用

JSP/JavaBean/Servlet,SQLServer数据库技术,在Tomcat服务器上发布项目,

只要掌握了这些基本技术,做好分析设计,熟悉考试系统涉及的业务流程就能开发出一套实用的在线考试系统。

2.2.2经济可行性

在经济效益方面,也很可行,此系统不需要消耗大量的成本,只需要一台电脑,现在电脑的价格已走进千家万户,非常便宜。另外一套开发环境,由于所用到得开发技术以及工具都是开源的,所以这方面的成本也是零,另外需要不太高的人力成本就能在短期内开发出本系统。

2.2.3方案可行性

分析完系统,我们从用户体验,功能完善方面出发,充分考虑使用的用户和教学任务,制定出符合用户习惯的功能和规则,制作出良好的用户界面,录入方式,操作方式等。

2.3功能要求

由于本考试系统的用户有三种:学生,教师,后台管理员,所以就从这三类用户的需求方面进行分析。

1)学生需求方面:

学生要应用考试系统,首先是得能在线考试,考试完成后待教师批改完试卷后学生还得能够在此系统查询自己的成绩,同时还得能够管理自己的个人信息。①在线考试方面:要进行在线考试首先得登录考试系统,确认自己的个人信息,然后才进行在线考试,在学生进行答题之前系统要首先分配好学生的考试题目,当然分配题目要随机分配这样能够避免考试作弊,同时为了能够回收每一份试卷,也为了学生考试的体验,保证学生能够合理掌握时间,系统要添加一个倒计时的功能,当考试时间到系统将强制提交学生试卷,进行到这里在线考试过程完成。②查询成绩:待教师批改完试卷向系统提交后学生就可以登录系统查询自己的成绩,为了让学生能够详细的了解自己的考卷,分析自己考试的不足,我们添加一个考试详情的功能,能显示每一道题的得分情况以及正确答案,能让学生查漏补缺。③维护个人信息:学生是系统用户的一类,那么肯定要能够进行管理自己的个人信息,比如可以修改自己的密码,但是不能修改自己的学号。

2)教师需求方面

由于我们把添加考题设置考试的功能交给后台管理员了,所以教师只需要做到查看并批改相应科目的学生试卷,为了能够清楚所教科目学生的考试成绩反馈信息,实施下一阶段的教学策略,教师需要能够查询所担任科目学生成绩的统计信息。当然教师也能够修改维护自己的个人信息。

3)后台管理员需求方面

后台管理员需要做到能够添加相应科目的考试题目,添加考题可以手动增加还要能够批量从Excel表格导入考试题目;还能够设置考试科目的信息:考试时间,各种考题类型的数量,分值;当然后台管理员还要能够进行对系统各类用户进行管理,增加、删除、修改、查询。添加用户的时候要能够批量从Excel表格导入用户信息

3系统总体设计

3.1系统数据流图

系统数据流图如下图

图3.1在线考试系统数据流图3.2系统的功能模块层次图

如图3.2所示

图3.2在线考试系统的功能模块图

3.3系统功能模块

1、在线考试

考生登陆进系统后,根据后台管理员对相应考试科目的设置系统将为考试选择一套试题,这套试题的选法根据一定的随机算法,保证试题不和其他同学重复,考生开始作答后,会有倒计时功能,规定时间到的时候,系统会自动提交考生试卷,提交完试卷系统为单选题,多选题,和判断题这三类客观题评分。下图为该模块的数据流图。

图3.3在线考试流图

2、查看和修改考生试卷

任课教师登录后,系统会把相应考试科目的学生考试试卷读取出来,随后提醒教师批改主观题,教师批改完成后,学生的成绩信息也将生成。下图为改模块的数据流图。

图3.4修改试卷流图

3、分数段统计

为了方面教师了解考生考试情况,教师批改完试卷后,系统会自动生成相应

科目的全体学生的分数段统计的信息。

4、成绩查询

待教师批改完试卷后,学生可以登录系统查询自己的成绩以及考试详细信息。

5、试题维护

系统将考试试题读取出来后,后台管理员对试题进行增删改。下图为该模块的数据流图。

图3.5考题维护管理流图

6、考试设置信息维护

设置考试信息是很重要的模块,后台管理员对设置的考试信息的管理,比如考试时间,各题的数量和分值,包括增删改等操作。下图为设置信息维护数据流图。

图3.6设置考试信息流图

7、用户管理

系统先读出用户(学生和教师)信息,然后系统管理员可以对这些用户进行添加,修改,删除操作。下图为该模块流图。

图3.7用户管理流图

8、个人信息管理维护

系统中的每一类(学生,教师,管理)用户都可以对个人基本信息进行管理。4数据库设计

4.1数据字典

分析系统功能,本系统有下列数据库表:

1)用户表:该表是为了存储系统各类用户的基本信息,有下列字段,用户编号(主键),用户类型(1为学生,2为教师,3为系统管理员),用户名,用户密码,用户性别。

表4.1用户表(UserInfo)

2)考生标记表:这张表是为了存储考生是否已经考试的标识信息,属性有用户编号、课程名称、标识信息(0为试卷为提交,1为已提交试卷)。主键是用户名称和课程名称。

表4.2用户标记表(userflag)

3)考题表,该表存储了考题的基本信息,有下列属性。考题编号,课程名称,考题类型(1为单项选择,2多选题,3为判断题,4为简答题,5为编程题),题目和参考答案等。主码是考题编号。

表4.3考题表(Question)

4)试卷设置表,存储相应课程的考试设置的相关信息,有下列属性。课程名称(主码),单项选择、多项选择、判断题、编程题、简答题的数量以及分值,以及考试时间等。

表4.4考试设置表(TestSet)

5)试卷表,存储考生的试卷信息,有下列属性。考生编号(主键)、课程名称(主键)、考题类型、考生答案和得分。

表4.5试卷表(test)

6)成绩表,存储了考生的考试成绩信息,有下列属性。考生编号(主键),各考题得分,课程名称(主键),总得分。

表4.6成绩表(record)

4.2实体关系图

根据分析结果实体关系图如下图所示:

图4.7系统E-R图4.3数据库的连接

系统连接数据库的流程图如下:

图4.8连接数据库流程图

数据库相关操作(建立数据库连接和关闭数据库连接)的方法位于DBAccess 类中,用作工具类

5详细设计

5.1公共类设计

1.设计Domain类

为了匹配数据库表关系模型数据和java对象模型数据,我们建立对应的Domain 类,Domain类的类属性与每个表的属性对应,我们给类中的每个属性建立一个get方法和set方法。数据库中的每一张表对应一个相应的Domain类。比如用户表(UserInfo)对应用户类(User)。

2.设计工具类

对系统设计需求进行分析后,我们设计了下面几种工具类:

1)数据库连接工具类:对数据库连接关闭的相关操作。

2)用户操作相关类:提供对用户表操作的相关方法。

3)用户标记工具类:提供对用户标记表的相关操作方法。

4)考题工具类:提供对考题表的相关操作方法。

5)试卷工具类:提供对试卷表的相关操作方法。

6)考试设置工具类:提供对考试设置表的相关操作方法。

7)成绩工具类:提供对成绩表的相关操作方法。

8)试卷考题工具类:提供了对试卷表考题表联合查询视图的相关操作方法。5.2在线考试模块设计

学生进行在线考试的过程是:学生登陆进考试系统后,系统会把学生的个人信息以及考试的科目信息等显示给学生,以便学生能及时确认自己的信息是否正确,错误的话可以返回登陆首页重新登陆,如果信息正确学生就可以确认正式进入考试,根据一定的算法,系统为考生随机生成一套相应的试题,考生必须在规定时间内答题,如果到了规定时间,系统就会自动提交考生的试卷,并提示考生离开。提交完试卷系统将自动给单选题、多选题、判断题这三类客观题评分,余下的主观题将交给教师进行评判,如下图5.1。

随机抽题算法:系统产生一个大于0小于对应题型的总考题数的随机数,然后系统根据这个数从这个数开始抽取考题,抽取的考题数量等于管理员设置试卷时设置对应题型的个数,这个数要小于总题数,如果取到最后一道取不够,就从第一道题开始继续取题,直到取到相应数量的题为止。如图5.2。

图5.1在线考试流程

图5.2选题流程

全国自学考试数据结构导论试题及答案(4套)

全国2011年1月自学考试数据结构导论试题 课程代码:02142 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.在顺序表中查找第i个元素,时间效率最高的算法的时间复杂度为( ) A.O(1) B.O(n) C.O(log2n) D.O(n) 2.树形结构中,度为0的结点称为( ) A.树根 B.叶子 C.路径 D.二叉树 3.已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={,,,},则图G的拓扑序列是 ( ) A.V1,V3,V4,V6,V2,V5,V7 B.V1,V3,V2,V6,V4,V5,V7 C.V1,V3,V4,V5,V2,V6,V7 D.V1,V2,V5,V3,V4,V6,V7 4.有关图中路径的定义,表述正确的是( ) A.路径是顶点和相邻顶点偶对构成的边所形成的序列 B.路径是不同顶点所形成的序列 C.路径是不同边所形成的序列 D.路径是不同顶点和不同边所形成的集合 5.串的长度是指( ) A.串中所含不同字母的个数 B.串中所含字符的个数 C.串中所含不同字符的个数 D.串中所含非空格字符的个数 6.组成数据的基本单位是( ) A.数据项 B.数据类型 C.数据元素 D.数据变量 7.程序段 i=n;x=0; do{x=x+5*i;i--;}while (i>0); 的时间复杂度为( ) A.O(1) B.O(n) C.O(n2) D.O(n3) 8.与串的逻辑结构不同的 ...数据结构是( ) A.线性表 B.栈 C.队列 D.树

数据结构与算法考试大纲

《数据结构》考试大纲 I.考查目标 考试目标是了解常见数据结构的概念,掌握数据结构的构造方法以及相应的算法思想,会对重点数据结构的操作方法和算法进行简单的伪代码编写。 II.考试形式和试卷结构 一、试卷总分及考试时间 试卷总分为150分,考试时间180分钟。 二、答题方式 答题方式为闭卷、笔试。 III.考查内容 第一章、线性表 1.线性表的逻辑结构 2.线性表的顺序存储结构 3.线性表的链式存储结构 3.1单链表 3.2循环链表 3.3双向链表 第二章、栈与队列

1.栈 1.1栈的基本概念 1.2顺序栈 1.3链式栈 2.队列 2.1队列的基本概念 2.2链队列 2.3循环队列——队列的顺序存储结构第三章、串 1.串类型的定义 2.字符串的实现 3.字符串模式匹配算法 3.1简单字符串模式匹配算法 3.2首尾字符串模式匹配算法 3.3KMP模式匹配算法 第四章、数组和广义表 1.数组 1.1数组的基本概念 1.2数组的顺序存储方式 2.矩阵 2.1矩阵的定义和操作

2.2特殊矩阵 2.3稀疏矩阵 3.广义表 3.1基本概念 3.2广义表的存储结构 第五章、树和二叉树 1.树的基本概念 1.1树的定义 1.2基本术语 2.二叉树 2.1二叉树的定义 2.2二叉树的性质 2.3二叉树的存储结构 3.二叉树的遍历 3.1遍历的定义 3.2遍历算法 4.树和森林 4.1树的存储表示 4.2森林的存储表示 4.3树和森林的遍历 4.4树和森林与二叉树的转换 5.哈夫曼树与哈夫曼编码

5.1哈夫曼树的基本概念 5.2哈夫曼树构造算法 5.3哈夫曼树编码 第六章、图 1.图的定义和术语 2.图的存储表示 2.1邻接矩阵 2.2邻接表 3.图的遍历 3.1深度优先搜索 3.2广度优先搜索 4.图的最小代价生成树 4.1Prim算法 4.2Kruskal算法 5.有向无环图的应用 5.1拓扑排序 5.2关键路径 6.最短路径问题 6.1单源点最短路径 6.2所有顶点之间的最短路径第七章、查找

2017年数据结构期末考试题及答案A

2017年数据结构期末考试题及答案 一、选择题(共计50分,每题2分,共25题) 1 ?在数据结构中,从逻辑上可以把数据结构分为 C 。 A. 动态结构和静态结构B?紧凑结构和非紧凑结构 C.线性结构和非线性结构 D .内部结构和外部结构 2?数据结构在计算机内存中的表示是指 A ° A. 数据的存储结构 B.数据结构 C.数据的逻辑结构 D .数据元 素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。 A. 逻辑B?存储 C.逻辑和存储 D.物理 4 .在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C ° A.数据的处理方法B?数据元素的类型 C.数据元素之间的关系 D.数据的存储方法 5. 在决定选取何种存储结构时,一般不考虑 A ° A.各结点的值如何B?结点个数的多少 C?对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。 6. 以下说法正确的是D ° A. 数据项是数据的基本单位 B. 数据元素是数据的最小单位 C. 数据结构是带结构的数据项的集合 D. —些表面上很不相同的数据可以有相同的逻辑结构 7. 在以下的叙述中,正确的是B ° A. 线性表的顺序存储结构优于链表存储结构 B. 二维数组是其数据元素为线性表的线性表 C?栈的操作方式是先进先出 D.队列的操作方式是先进后出

8. 通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 A. 数据元素具有同一特点 B. 不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C. 每个数据元素都一样 D. 数据元素所包含的数据项的个数要相等 9 ?链表不具备的特点是 A 。 A.可随机访问任一结点 B.插入删除不需要移动元素 C?不必事先估计存储空间 D.所需空间与其长度成正比 10. 若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一 个结点,则采用 D 存储方式最节省运算时间。 A.单链表B ?给出表头指针的单循环链表 C.双链表D ?带头结点 的双循环链表 11. 需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。 A.单链表B .静态链表 C.线性链表 D .顺序存储结构 12 .非空的循环单链表head的尾结点(由p所指向)满足C 。 A. p—>next 一NULL B. p — NULL C. p—>next == head D. p = = head 13 .在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。 A .p—> prior-> prior=s B .p—> prior-> n ext=s C.s —> prior—> n ext = s D.s —> prior—> prior = s 14 .栈和队列的共同点是C 。 A.都是先进后出 B .都是先进先出 C.只允许在端点处插入和删除元素 D .没有共同点

自考数据结构试题真题

全国2011年1月高等教育自学考试 数据结构试题 课程代码:02331 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下列选项中与数据存储结构无关的术语是() A.顺序表 B.链表 C.链队列 D.栈 2.将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是() A.n-1 B.n C.2n-1 D.2n 3.已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置,则向队列中插入新元素时,修改指针的操作是() A.rear=(rear-1)%m; B.front=(front+1)%m; C.front=(front-1)%m; D.rear=(rear+1)%m; 4.递归实现或函数调用时,处理参数及返回地址,应采用的数据结构是() A.堆栈 B.多维数组 C.队列 D.线性表 5.设有两个串p和q,其中q是p的子串,则求q在p中首次出现位置的算法称为() A.求子串 B.串联接 C.串匹配 D.求串长 6.对于广义表A,若head(A)等于tail(A),则表A为() A.( ) B.(( )) C.(( ),( )) D.(( ),( ),( )) 7.若一棵具有n(n>0)个结点的二叉树的先序序列与后序序列正好相反,则该二叉树一定是 ()A.结点均无左孩子的二叉树 B.结点均无右孩子的二叉树

C.高度为n的二叉树 D.存在度为2的结点的二叉树 8.若一棵二叉树中度为l的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是() A.4 B.5 C.7 D.8 9.下列叙述中错误的是() A.图的遍历是从给定的源点出发对每一个顶点访问且仅访问一次 B.图的遍历可以采用深度优先遍历和广度优先遍历 C.图的广度优先遍历只适用于无向图 D.图的深度优先遍历是一个递归过程 10.已知有向图G=(V,E),其中V={V1,V2,V3,V4},E={},图G的拓扑序列是() A.V1,V2,V3,V4 B.V1,V3,V2,V4 C.V1,V3,V4,V2 D.V1,V2,V4,V3 11.平均时间复杂度为O(n log n)的稳定排序算法是() A.快速排序 B.堆排序 C.归并排序 D.冒泡排序 12.已知关键字序列为(51,22,83,46,75,18,68,30),对其进行快速排序,第一趟划分完成后的关键字序列是() A.(18,22,30,46,51,68,75,83) B.(30,18,22,46,51,75,83,68) C.(46,30,22,18,51,75,68,83) D.(30,22,18,46,51,75,68,83) 13.某索引顺序表共有元素395个,平均分成5块。若先对索引表采用顺序查找,再对块中元素进行顺序查找,则在等概率情况下,分块查找成功的平均查找长度是()A.43 B.79 C.198 D.200 14.在含有10个关键字的3阶B-树中进行查找,至多访问的结点个数为() A.2 B.3 C.4 D.5 15.ISAM文件系统中采用多级索引的目的是() A.提高检索效率 B.提高存储效率

991数据结构与C语言程序设计考试大纲(2013版).

编程技术精品! 991数据结构与C语言程序设计考试大纲(2013版) 2013年《数据结构与C语言程序设计》考试内容包括"数据结构"与"C语言程序设计"两门课程的内容,各占比例50%,试卷满分为150分。《数据结构》部分指定参考书:《数据结构教程(第二版)》唐发根编著北京航空航天大学出版社一、概述 1.数据的逻辑结构与存储结构的基本概念; 2.算法的定义、基本性质以及算法分析的基本概念,包括采用大?形式表示时间复杂度和空间复杂度。二、线性表 1.线性关系、线性表的定义,线性表的基本操作; 2.线性表的顺序存储结构与链式存储结构(包括单(向链表、循环链表和双向链表的构造原理; 3.在以上两种存储结构的基础上对线性表实施的基本操作,包括顺序表的插入与删除、链表的建立、插入与删除、查找等操作对应的算法设计(含递归算法的设计。三、堆栈与队列 1.堆栈与队列的基本概念与基本操作; 2.堆栈与队列的顺序存储结构与链式存储结构的构造原理; 3.在不同存储结构的基础上对堆栈与队列实施插入与删除等基本操作的算法设计; 4.堆栈和队列在解决实际问题中应用。四、树与二叉树 1.树与二叉树的基本概念,基本特征、名词术语; 2.完全二叉树与满二叉树的基本概念,二叉树的基本性质; 3.二叉树与树、树林之间的转换; 4.二叉树的顺序存储结构与二叉链表存储结构; 5.二叉树的前序遍历、中序遍历、后序遍历和按层次遍历,以及在二叉链表基础上各种遍历算法(重点为非递归算法的设计与应用; 6.二叉排序树的基本概念、建立(插入、查找与平均查找长度ASL 的计算; 7.哈夫曼(Huffman树的基本概念,哈夫曼树的构造与带权路径长度(WPL的计算。五、图 1.图的基本概念、名词术语; 2.图的邻接矩阵存储方法和邻接表(含逆邻接表存储方法的构造原理及特点; 3.图的深度优先搜索与广度优先搜索; 4.最小(代价生成树、最短路径、AOV网与拓扑排序以及AOE网与关键路径的基本概念与求解过程。六、文件及查找 1.顺序查找法以及平均查找长度(ASL的计算; 2.折半查找法以及平均查找长度(ASL的计算,包括查找过程对应的"判定树"的构造; 3.B-树和B+树的基本概念,B-树的插入与查找; 4.散列(Hash表的构造、散列函数的构造,散列冲突的基本概念、处理散列冲突的基本方法以及散列表的查找和平均查找长度的计算。七、内排序 1.排序的基本概念,各种内排序方法的基本

数据结构复习资料,java数据结构期末考试

第二章算法分析 1.算法分析是计算机科学的基础 2.增长函数表示问题(n)大小与我们希望最优化的值之间的关系。该函数表示了该算法的时间复杂度或空间复杂度。增长函数表示与该问题大小相对应的时间或空间的使用 3.渐进复杂度:随着n的增加时增长函数的一般性质,这一特性基于该表达式的主项,即n 增加时表达式中增长最快的那一项。 4.渐进复杂度称为算法的阶次,算法的阶次是忽略该算法的增长函数中的常量和其他次要项,只保留主项而得出来的。算法的阶次为增长函数提供了一个上界。 5.渐进复杂度:增长函数的界限,由增长函数的主项确定的。渐进复杂度类似的函数,归为相同类型的函数。 6.只有可运行的语句才会增加时间复杂度。 7. O() 或者大O记法:与问题大小无关、执行时间恒定的增长函数称为具有O(1)的复杂度。 增长函数阶次 t(n)=17 O(1) t(n)=3log n O(log n) t(n)=20n-4 O(n) t(n)=12n log n + 100n O(n log n) t(n)=3n2+ 5n - 2 O(n2) t(n)=8n3+ 3n2O(n3) t(n)=2n+ 18n2+3n O(2n) 8.所有具有相同阶次的算法,从运行效率的角度来说都是等价的。 9.如果算法的运行效率低,从长远来说,使用更快的处理器也无济于事。 10.要分析循环运行,首先要确定该循环体的阶次n,然后用该循环要运行的次数乘以它。(n 表示的是问题的大小) 11.分析嵌套循环的复杂度时,必须将内层和外层循环都考虑进来。 12.方法调用的复杂度分析: 如:public void printsum(int count){ int sum = 0 ; for (int I = 1 ; I < count ; I++) sum += I ; System.out.println(sun); } printsum方法的复杂度为O(n),计算调用该方法的初始循环的时间复杂度,只需把printsum方法的复杂度乘以该循环运行的次数即可。所以调用上面实现的printsum方法的复 杂度为O(n2)。 13指数函数增长> 幂函数增长> 对数函数增长

《数据结构》课程考试大纲

03 《数据结构》考试大纲 主要参考教材:严蔚敏、吴伟民编著,《数据结构(C语言版)》,清华大学出版社 谭国律等编著《数据结构》,浙江大学出版社。 总体要求: “数据结构”是一门专业技术基础课。目的就是要培养他们的数据抽象能力,学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及实现应用的相应算法,并掌握分析算法的时间和空间复杂度的技术。 考生在复习时,重点掌握基本概念、基本算法。考题以基本内容为主,题目以基础知识题为主,各章较难内容、较偏内容不考。课本所有加“*”号章节不考,第8章动态存储管理不考。外部排序,文件部分不考。 各章考试内容及要求: 一、绪论:熟悉各名词、术语的含义,掌握基本概念,特别是数据的逻辑结构和存储结构之 间的关系;了解抽象数据类型的定义、表示和实现方法;熟悉类C语言的书写规范,特别要注意值调用和引用调用的区别,输入、输出的方式以及错误处理方式;理解算法五个要素的确切含义;掌握计算语句频度和估算算法时间复杂度的方法。 二、线性表:线性表的逻辑结构定义、抽象数据类型定义和各种存储结构的描述方法;在线 性表的两类存储结构(顺序存储和链式存储)上实现基本操作;一元多项式的抽象数据类型定义、表示及加法的实现。

三、栈和队列:栈和队列的结构特性;在两种存储结构上如何实现栈和队列的基本操作和栈 和队列在程序设计中的应用。(离散事件模拟不考) 四、串:串的数据类型定义;串的三种存储表示:定长顺序存储结构、块链存储结构和堆 分配存储结构;串的各种基本操作的实现及应用;串的朴素模式匹配算法。 五、数组:数组的类型定义和表示方法;特殊矩阵和稀疏矩阵的压缩存储方法及运算的实 现;(广义表不考)。 六、树和二叉树:二叉树的定义、性质和存储结构;二叉树的遍历和线索化以及遍历算法 的各种描述形式;树和森林的定义、存储结构、树和森林与二叉树的转换、遍历;树的多种应用;本章是该课程的重点内容之一。 七、图:图的定义和术语;图的邻接矩阵存储结构、邻接表存储结构:图的两种遍历策略: 深度优先搜索和广度优先搜索;图的最小生成树prim算法、Kruskal 算法;拓扑排序算法;单源最短路径问题的Dijstra 算法。 八、查找:讨论查找表(包括静态查找表和动态查找表)的各种实现方法:顺序表、有序表、 树表和哈希表;关于衡量查找表的主要操作——查找的查找效率的平均查找长度的讨论。(静态树表、平衡二叉树、B树不考)

《数据结构》期末考试题及答案

2011-2012学年第一学期期末考查 《数据结构》试卷 (答案一律写在答题纸上,在本试卷上做答无效) 一、选择(每题1分,共10分) 1.长度为n的线性表采用顺序存储结构,一个在其第i个位置插入新元素的算法时间复杂度为(D) A.O(0) B.O(1) C.O(n) D.O(n2) 2.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?(D) A.543612 B.453126 C.346512 D.234156 3.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为(B ) A.8 B.9 C.10 D.11 4.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是( B ) A. m-n B.m-n-1 C.n+1 D.m+n 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B) A.9 B.11 C.15 D.不确定 6.下列哪一个方法可以判断出一个有向图是否有环。(A) A.深度优先遍历 B.拓扑排序 C.求最短路径 D.求关键路径 7.第7层有10个叶子结点的完全二叉树不可能有(B )个结点。 A.73 B.234 C.235 D.236 8.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是(B) A.(100,80,90,60,120,110,130) B.(100, 120, 110,130,80, 60,90) C.(100,60,80,90,120,110,130) D.(100,80, 60,90, 120, 130,110) 9.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序过程中变化如下:(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47(4)15 21 25 47 84则采用的排序方法是(B ) A.选择排序 B.起泡排序 C.快速排序 D.插入排序 10.对线性表进行折半查找时,要求线性表必须(D) A.以顺序方式存储 B.以顺序方式存储,且数据元素有序

全国2013年10月高等教育自学考试数据结构

全国2013年10月高等教育自学考试 数据结构试题 课程代码:02331 请考生按规定用笔将所有试题的答案涂、写在答题纸上。 选择题部分 注意事项: 1. 答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。 2. 每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。如需改动,用橡皮擦干净后,再选涂其他答案标号。不能答在试题卷上。 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。错涂、多涂或未涂均无分。 1.算法的时间复杂度表征的是 A.算法的可读性B.算法的难易程度 C.执行算法所耗费的时间D.执行算法所耗费的存储空间 2.对需要频繁插入和删除结点的线性表,适合的存储方式是 A.顺序储存B.链式存储 C.索引存储D.散列存储 3.在头指针为head的循环链表中,判断指针变量P指向尾结点的条件是 A.p->next->next==head B.p->next==head C.p->next->next==NULL D.p->next==NULL 4.迪杰斯特拉(Dijkstra)算法的功能是 A.求图中某顶点到其他顶点的最短路径B.求图中所有顶点之间的最短路径 C.求图的最小生成树D.求图的拓扑排序序列 5.若栈的进栈序列为1,2,3,4,5,则经过出入栈操作不可能 ...获得的出栈序列是A.4,5,3,2,1 B.4,3,5,1,2 C.1,2,3,4,5 D.5,4,3,2,1 6.A是7×4的二维数组,按行优先方式顺序存储,元素A[0][0]的存储地址为1 000,若每个元素占2个字节,则元素A[3][3]的存储地址为 A.1015 B.1016 C.1028 D.1030 7.深度为4的完全二叉树的结点数至少为 A.4 B.8 C.13 D.15 8.若采用邻接矩阵A存储有向图G,则结点k的入度等于A中 A.结点k对应行元素之和B.结点k对应列元素之和 C.结点k对应行和列元素之和D.非零元素之和 9.无向图G的邻接矩阵一定是

2019 北京交通大学 925《数据结构》 考试大纲

2019年北京交通大学925《数据结构》考试大纲 1、绪论。 (1)掌握相关的基本概念,如数据结构、逻辑结构、存储结构、数据类型、抽象数据类型等; (2)掌握算法设计的原则,掌握计算语句频度和估算算法时间复杂度和空间复杂度的方法; (3)了解使用类C语言描述算法的方法。 2、线性表。 (1)掌握线性表的逻辑结构和存储结构; (2)掌握线性表在顺序结构和链式结构上实现基本操作的方法; (3)理解线性表两种存储结构的不同特点及其适用场合,会针对需求选用合适的存储结构解决实际问题; (4)了解一元多项式的表示方法和基本运算的实现方法。 3、栈和队列。 (1)了解栈和队列的特点; (2)掌握在两种存储结构上栈的基本操作的实现; (3)掌握栈的各种应用,理解递归算法执行过程中栈状态的变化过程;(4)掌握循环队列和链队列的基本运算; (5)会应用队列结构解决实际问题。 4、串。 (1)掌握串的基本运算的定义,了解利用基本运算来实现串的其它运算的方法;

(2)了解在顺序存储结构和在堆存储结构以及块链存储结构上实现串的各种操作的方法; (3)理解KMP算法,掌握NEXT函数和改进NEXT函数的定义和计算。 5、数组和广义表。 (1)掌握数组在以行为主和以列为主的存储结构中的地址计算方法;(2)掌握矩阵压缩存储时的下标变换方法,了解以三元组表示稀疏矩阵的方法; (3)理解广义表的定义及其存储结构,理解广义表的头尾和子表两种分析方法。 6、树和二叉树。 (1)熟练掌握二叉树的结构特点和性质,掌握二叉树各种存储结构及 构建方法; (2)掌握按先序、中序、后序和层次次序遍历二叉树的算法,理解二叉树的线索化实质和方法; (3)利用二叉树的遍历求解实际问题; (3)掌握树的各种存储结构及其特点,掌握树的各种运算的实现算法;(4)掌握建立最优二叉树和哈夫曼编码的方法。 7、图。 (1)熟练掌握图的基本概念,会构建各种图的存储结构; (2)掌握深度优先搜索遍历图和广度优先搜索遍历图的算法; (3)灵活运用图的遍历算法求解各种路径问题,包括最小生成树﹑最短路径﹑拓扑排序﹑关键路径等。

2017数据结构期末考试试题及答案

2017《数据结构》期末考试试题及答案 《数据结构》期末考试试题及答案 1 ................................................................. 2..试题 1 答案............................................................ 7..《数据结构》期末考试试题及答案 2 ................................................................. 9..试题 2 答案........................................................................ 1.. 4. 《数据结构》期末考试试题及答案 3 ............................................................... 1..6试题 3 答案........................................................................ 2.. 1.

数据结构》期末考试试题及答案 1 单选题(每题 2 分,共 20 分) 1. 栈和队列的共同特点是 ( )。 A. 只允许在端点处插入和删除元素 B. 都是先进后出 C. 都是先进先出 D. 没有共同点 2. 用链接方式存储的队列,在进行插入运算时 ( ). A. 仅修改头指针 B. 头、尾指针都要修改 C. 仅修改尾指针 D .头、尾指针可能都要修改 3. 以下数据结构中哪一个是非线性结构? ( ) A. 队列 B. 栈 C. 线性表 D. 二叉树 4. 设有一个二维数组A[m][n],假设A[0][0]存放位置在644(io ), A[2][2]存放 若有18个元素的有序表存放在一维数组 A[19]中,第一个元素放A[1]中, 现进行二分查找,则查找 A [3]的比较序列的下标依次为( A. 1 , 2, 3 B. 9, 5, 2, 3 C. 9, 5, 3 D. 9, 4, 2, 3 8. 对n 个记录的文件进行快速排序,所需要的辅助存储空间大致为 A. O (1) B. O (n ) C. O ( 1 og 2n ) D. O (n2) 9. 对于线性表( 7, 34, 55, 25, 64, 46, 20, 10)进行散列存储时,若选 用 H (K )=K %9 作为散列函数,则散列地址为 1 的元素有( )个, 位置在 676(10),每个元素占一个空间, 表示用 10 进制表示。 问 A[3][3] (10)存放在什么位置?脚注 (10) 5. A .688 B .678 C . 692 D . 696 树最适合用来表示 ( )。 A.有序数据元素 B.无序数据元素 6. C.元素之间具有分支层次关系的数据 D .元素之间无联系的数据 二叉树的第 k 层的结点数最多为 ( ). A .2-1 B.2K+1 C.2K-1 D. 2k-1 7.

《数据结构》期末考试试卷

广东创新科技职业学院期末考试试题(标明A 卷、B 或C 卷) 2018 —2019 学年第二学期考试科目:《数据结构》 (闭(开)卷 90分钟) 院系____________ 班级____________ 学号___________ 姓名 __________ 一、选择题(每小题 2 分,共 40 分) 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. 下述程序段①中各语句执行频度的和是()。 s=0; ① for(i=1;i<=i;j++) s+=j; A .n-1 B .n C .2n-1 D .2n 7. 下面程序段的时间复杂度为()。 for(i=0;i

2018西安邮电大学初试考试大纲—826数据结构

西安邮电大学硕士研究生招生考试大纲 科目代码:826 科目名称:《数据结构》 一、课程性质和任务 数据结构是计算机各专业的专业基础课。它是操作系统、数据库、编译原理等所有软件专业基础课和专业课的重要基础;它还是进行程序设计,尤其是进行高水平的应用程序和系统程序必不可少的基础。通过本课程的学习,使学生掌握数据组织、存储和运算的基本原理和方法,培养学生对各类数据结构和相关算法的分析和设计的能力,使学生能够编写出正确、清晰和较高质量的算法和程序。 二、课程教学内容和要求 第一章数据结构和算法 1.了解数据结构、逻辑结构、存储结构和抽象数据类型的基本概念。 2.了解数据结构的发展和地位。 3.了解各种算法描述方法和算法设计的基本要求。 4.掌握对算法的评价标准和算法效率的度量方法。 第二章线性表 1.理解线性表的概念、定义、逻辑结构和存储结构。 2.熟练掌握线性表的顺序结构及其各种基本运算。 3.熟练掌握单链表、循环链表、双向链表的存储结构及其各种基本运算。 4.理解链表的应用——稀疏多项式存储和运算。 第三章栈和队列 1.掌握栈的定义、表示、实现和应用。 2.掌握递归的概念和递归的实现过程。 3.掌握队列的定义以及顺序(循环队列)和链式存储结构的实现。 第四章串 1.了解串的基本概念及顺序和链式存储结构。 2.掌握串的各种基本运算。

3.了解串的模式匹配算法。 第五章数组和广义表 1.掌握数组的顺序存储结构。 2.理解稀疏数组的概念和压缩存储的方法。 3.理解稀疏矩阵的三元组存储结构和基本运算。 4.了解稀疏矩阵的十字链表存储结构。 5.理解广义表的基本概念,掌握广义表的存储结构。 第六章树 1.理解树的基本概念及其存储结构。 2.熟练掌握二叉树的定义、性质以及各种存储结构和遍历算法。 3.掌握线索二叉树的概念、存储结构及线索化算法。 4.掌握树和森林与二叉树间的转换,掌握树和森林的遍历算法。 5.掌握哈夫曼树的概念、存储结构和应用。 第七章图 1.理解图的基本概念,掌握图的邻接矩阵和邻接表的存储结构。 2.了解十字链表,邻接多重表等存储结构。 3.熟练掌握图的深度优先和广度优先遍历算法。 4.理解图的连通性、最小生成树的概念。 5.掌握求最小生成树算法。 6.理解有向无环图的概念,掌握拓扑排序和关键路径算法。 7.理解带权最短路径的概念,掌握求最短路径的算法。 第八章查找 1.理解查找的概念及其效率的评价方法。 2.理解静态查找表的概念,熟练掌握顺序、折半和分块查找算法。 3.理解动态查找表和二叉排序树的概念。 4.了解平衡二叉树的概念。 5.理解哈希表的含义,掌握哈希函数的构造和处理冲突的基本方法。第九章内部排序 1.掌握插入类排序的算法:直接插入排序、希尔排序。

数据结构期末考试试题及答案

贵州大学理学院数学系信息与计算科学专业 《数据结构》期末考试试题及答案 (2003-2004学年第2学期) 一、单项选择题 1.对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为()。 (A)、正确性(B). 可行性(C). 健壮性(D). 输入性 2.设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。 for(i=n-1;i>=0;i--) for(j=0;jnext; p->next= Q.rear->next; (D)、p=Q->next; Q->next=p->next; 9. Huffman树的带权路径长度WPL等于() (A)、除根结点之外的所有结点权值之和(B)、所有结点权值之和 (C)、各叶子结点的带权路径长度之和(D)、根结点的值 10.线索二叉链表是利用()域存储后继结点的地址。 (A)、lchild (B)、data (C)、rchild (D)、root 二、填空题

自学考试数据结构重点总结

自考数据结构重点(2014整理) 第一章概论 1、瑞士计算机科学家沃思提出:算法+数据结构=程序。算法就是对数据运算得描述,而数据结构包括逻辑结构与存储结构。由此可见,程序设计得实质就是针对实际问题选择一种好得数据结构与设计一个好得算法,而好得算法在很大程度上取决于描述实际问题得数据结构。 2、数据就是信息得载体。数据元素就是数据得基本单位。一个数据元素可以由若干个数据项组成,数据项就是具有独立含义得最小标识单位.数据对象就是具有相同性质得数据元素得集合。 3、数据结构指得就是数据元素之间得相互关系,即数据得组织形式。 数据结构一般包括以下三方面内容:数据得逻辑结构、数据得存储结构、数据得运算 ①数据得逻辑结构就是从逻辑关系上描述数据,与数据元素得存储结构无关,就是独立于计算机得。 数据得逻辑结构分类:线性结构与非线性结构 ②数据元素及其关系在计算机内得存储方式,称为数据得存储结构(物理结构)。 数据得存储结构就是逻辑结构用计算机语言得实现,它依赖于计算机语言。 ③数据得运算。最常用得检索、插入、删除、更新、排序等。 4、数据得四种基本存储方法:顺序存储、链接存储、索引存储、散列存储 (1)顺序存储:通常借助程序设计语言得数组描述。 (2)链接存储:通常借助于程序语言得指针来描述。 (3)索引存储:索引表由若干索引项组成。关键字就是能唯一标识一个元素得一个或多个数据项得组合。 (4)散列存储:该方法得基本思想就是:根据元素得关键字直接计算出该元素得存储地址. 5、算法必须满足5个准则:输入,0个或多个数据作为输入;输出,产生一个或多个输出;有穷性,算法执行有限步后结束;确定性,每一条指令得含义都明确;可行性,算法就是可行得。 算法与程序得区别:程序必须依赖于计算机程序语言,而一个算法可用自然语言、计算机程序语言、数学语言或约定得符号语言来描述。目前常用得描述算法语言有两类:类Pascal与类C. 6、评价算法得优劣:算法得"正确性"就是首先要考虑得.此外,主要考虑如下三点:?①执行算法所耗费得时间,即时间复杂性; ②执行算法所耗费得存储空间,主要就是辅助空间,即空间复杂性; ③算法应易于理解、易于编程,易于调试等,即可读性与可操作性。 以上几点最主要得就是时间复杂性,时间复杂度常用渐进时间复杂度表示。 7、算法求解问题得输入量称为问题得规模,用一个正整数n表示. 8、常见得时间复杂度按数量级递增排列依次为:常数阶0(1)、对数阶0(log2n)、线性阶0(n)、线性对数阶0(nl og2n)、平方阶0(n2)立方阶0(n3)、…、k次方阶0(nk)、指数阶0(2n)与阶乘阶0(n!)。 9、一个算法得空间复杂度S(n)定义为该算法所耗费得存储空间,它就是问题规模n得函数,它包括存储算法本身所占得存储空间、算法得输入输出数据所占得存储空间与算法在运行过程中临时占用得存储空间。 第二章线性表 1、数据得运算就是定义在逻辑结构上得,而运算得具体实现就是在存储结构上进行得. 2、只要确定了线性表存储得起始位置,线性表中任意一个元素都可随机存取,所以顺序表就是一种随机存取结构。 3、常见得线性表得基本运算: (1)置空表InitList(L) 构造一个空得线性表L。 (2)求表长ListLength(L)求线性表L中得结点个数,即求表长。 (3)GetNode(L,i)取线性表L中得第i个元素.?(4)LocateNode(L,x)在L中查找第一个值为x 得元素,并返回该元素在L中得位置。若L中没有元素得值为x ,则返回0值。?(5)InsertList(L,i,x)在线性表L得第i个元素之前插入一个值为x 得新元素,表L得长度加1. (6)DeleteList(L,i)删除线性表L得第i个元素,删除后表L得长度减1. 4、顺序存储方法:把线性表得数据元素按逻辑次序依次存放在一组地址连续得存储单元里得方法。 顺序表(Sequential List):用顺序存储方法存储得线性表称为顺序表.顺序表就是一种随机存取结构,顺序表得特点就是逻辑上相邻得结点其物理位置亦相邻。 5、顺序表上实现得基本运算:

数据结构课程教学大纲

《数据结构》教学大纲 课程性质专业必修课 课程名称数据结构课程编号*04069 适用专业计算机科学与技术/软件工程开课学期第3学期 总学时64 理论50 学分数 4 实践14 一、课程性质与目标 数据结构课程属于专业必修课。通过本课程数据结构的学习,学生应实现如下目标: 1.知识目标:本课程主要讲述线性表、栈、队列、字符串、数组、树、二叉树、图、查找表、内部排序等常用数据结构的基本概念、操作及其典型应用例子。通过本课程的学习,应使学生掌握数据结构的概念及不同的存储结构、掌握一些典型算法原理和方法,且能够在不同存储结构上实现编程,同时,对于算法设计的方式和技巧也有所体会。 2.能力目标 (1)独立获取知识的能力——逐步掌握科学的学习方法,不断地扩展知识面,增强独立思考的能力,更新知识结构; (2)科学观察和思维的能力——运用数据结构的基本理论,熟悉各种基本数据结构及其操作,学会根据实际问题要求来选择数据结构。 (3)分析问题和解决问题的能力——学会利用数据结构原理分析实际问题,提高发现问题与解决问题的能力。对部分优秀的学生,培养其在知名程序设计在线评测系统(如POJ等)中求解实际问题的能力。 (4)求实精神——通过数据结构理论课程教学,培养学生严谨求实的科学态度和刻苦钻研的作风。 (5)实践能力——通过学习,有意识地培养学生编写高质量、高效率程序的能力和风格。 3.素质目标:使学生具备一定的计算思维,热爱算法设计和程序实现,面对实际问题能转换为计算机能够求解的过程并选择合适的数据结构,设计出在时间和空间上具备一定高效率的程序,培养学生学习算法设计与实现的细心和耐心,培养学生坚韧不拔,攀登技术高峰的优秀品质。让部分优秀的学生热爱上湖南省大学生程序设计竞赛,体会ACM程序设计竞赛的魅力。 二、课程教学基本要求 课程前应该认真预习,特别是前导课程相关知识体系; 课中应该认真听课,参与教学过程中的互动、回答问题及联系实际编程; 课后积极做好复习、认真完成作业及课程设计相关实践教学的环节。作业应具备一定实用性的数据结构和算法实现为主,对部分优秀学生,引入一定量的知名程序设计在线评测系统(如POJ等)中与数据结构相关的题目进行编程并在线提交验证正确性与时间、空间效率。 三、教学内容与学时分配

数据结构期末考试试题含答案

2005年-2006学年第二学期“数据结构”考试试题(A) 姓名学号(序号)_ 答案隐藏班号 要求:所有的题目的解答均写在答题纸上(每张答题纸上要写清楚姓名、班号和学号),需写清楚题目的序号。每张答题纸都要写上姓名和序号。 一、单项选择题(每小题2分,共20分) 1.数据的运算a 。 A.效率与采用何种存储结构有关 B.是根据存储结构来定义的 C.有算术运算和关系运算两大类 D.必须用程序设计语言来描述 答:A。 2. 链表不具备的特点是 a 。 A.可随机访问任一结点 B.插入删除不需要移动元素 C.不必事先估计存储空间 D.所需空间与其长度成正比 答:参见本节要点3。本题答案为:A。 3. 在顺序表中删除一个元素的时间复杂度为 c 。 A.O(1) B.O(log2n) C.O(n) D.O(n2) 答:C。 4.以下线性表的存储结构中具有随机存取功能的是 d 。 A. 不带头结点的单链表 B. 带头结点的单链表 C. 循环双链表 D. 顺序表 解 D。 5. 一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是 c 。

A.edcba B.decba C.dceab D.abcde 答:C。 6. 循环队列qu的队空条件是 d 。 A. (qu.rear+1)%MaxSize==(qu.front+1)%MaxSize B. (qu.rear+1)%MaxSize==qu.front+1 C.(qu.rear+1)%MaxSize==qu.front D.qu.rear==qu.front 答:D。 7. 两个串相等必有串长度相等且 b 。 A.串的各位置字符任意 B.串中各位置字符均对应相等 C.两个串含有相同的字符 D.两个所含字符任意 答:B。 8. 用直接插入排序对下面四个序列进行递增排序,元素比较次数最少的是c 。 A.94,32,40,90,80,46,21,69 B.32,40,21,46,69,94,90, 80 C.21,32,46,40,80,69,90,94 D.90,69,80,46,21,32,94, 40 答:C。 9. 以下序列不是堆(大根或小根)的是 d 。 A.{100,85,98,77,80,60,82,40,20,10,66} B.{100,98,85,82,80, 77,66,60,40,20,10} C.{10,20,40,60,66,77,80,82,85,98,100} D.{100,85,40,77,80, 60,66,98,82,10,20}

数据结构课程教学大纲共三套

数据结构课程教学大纲(三套) 《数据结构》课程教学大纲(36/36课时) 一、课程的性质和任务 数据结构是计算机及应用专业中一门重要的专业基础课程,在计算机软件的各个领域中均会使用到数据结构的有关知识。当用计算机来解决实际问题时,就要涉及到数据的表示及数据的处理,而数据表示及数据处理正是数据结构课程的主要研究对象,通过这两方面内容的学习,为后续课程,特别是软件方面的课程打开厚实的基础。因此,数据结构课程在计算机应用专业中具有举足轻重的作用。 本课程的任务是:在基础方面,要求学员掌握常用数据结构的基本概念及其不同的实现方法;在技能方面,通过系统学习能够在不同存储结构上实现不同的运算,并对算法设计的方式和技巧有所体会。总言之,使应用者较全面的掌握各种常用的数据结构,提高运用数据结构解决实际问题的能力。 二、课程的基本要求 本课程的教学基本要求如下: 本课程要求理论必须与上机实践操作相结合,多做题和调试算法,实现算法。实践项目只利用课堂时间是不够的,必须提前布置给学生。通过本课程的学习与实践,学生应达到: 1、掌握数据结构的基本概念和基本理论; 2、熟练掌握顺序表、链表、队列、栈、树以及二叉树、图等基本数据结构的设计和分析; 3、熟练地掌握常用算法(递归、遍历、查找、排序)的知识; 4、能对所求解的问题进行分析,抽象出逻辑结构,选择合适的存储结构,定义所需的运算,设计相应的算法; 5、对算法进行分析和评价。

三、教学内容(一)理论教学

(二)实践环节

四、课时分配 《数据结构》课程共4学分,课内72学时,其中理论课36学时,上机36学时。 五、大纲说明 本课程必须理论与上机实践操作相结合,并要教、学、练相结合,讲清基本

相关文档
最新文档