《数据结构与算法分析》考试大纲
课程名称:
数据结构与算法
适用专业:
数据科学与大数据技术
采用教材:
数据结构与算法,彭军,向毅主编,人民邮电出版社;
其他参考书目:
数据结构与算法,瞿有甜主编,清华大学出版社;
一、考试的基本要求
理解数据结构的基本概念;掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作的实现。 掌握基本数据处理原理和方法的基础上,能够对算法进行基本的时间复杂度与空间复杂度设计与分析。 能够选择合适的数据结构和方法进行问题求解,具备采用 C++语言设计与实现算法的能力。
二、考试方法、时间、题型大致比例
1.考核方式:考试
2.考试时间:100分钟
3.题型大致比例
1、选择题 约占20%
2、填空题 约占10%
3、名词解释与简答题 约占20%
4、简单应用题 约占40%
5、算法设计题 约占10%
三、考试内容及考试要求
第一章、数据结构和算法的基本概念
(1)了解数据结构的基本概念,包括逻辑结构、物理结构的基本概念、两者之间的区别与联系。
(2)了解算法的基本概念和性质。
(3)了解算法复杂度的基本概念,掌握对非递归代码的复杂度计算基本方法。
第二章、线性表
(1)了解线性表的逻辑结构定义。
(2)掌握线性表的顺序结构实现,以及顺序结构下基本操作的实现,能写出操作代码。
(3)掌握线性表的链式结构实现,以及链式结构下基本操作的实现,能写出操作代码。
第三章、栈与队列
(1)掌握栈的基本概念、栈的性质。
(2)了解栈与递归的关系,能够编写递归算法。
(3)掌握队列的基本概念和性质。
(4)掌握栈和队列的应用方法,能够运用栈和队列解决简单应用问题。
第四章、树和二叉树
(1)了解树的定义和性质。
(2)了解二叉树的概念。
(3)掌握二叉树的基本性质,并能够进行描述和证明。(包括深度与最大结点数的关系性质、每层最大结点数性质、结点数与最小深度的关系性质、n2=n0-1性质、完全二叉树序号与结点关系性质等)
(4)掌握二叉树的前序遍历、中序遍历、后序遍历和层次遍历规则,能够手工计算二叉树的遍历序。
(5)掌握二叉树的遍历性质,能够根据前序+中序或中序+后序还原出二叉树。
(6)掌握二叉树的前序、中序和后序递归遍历算法,并结合相关性质解决实际应用问题。
了解线索化二叉树的概念。
第五章、图
(1)了解图的定义,掌握顶点、边之间的关系。
(2)掌握图的邻接矩阵、邻接表的实现方法。
(3)掌握图的深度优先和广度优先遍历算法,能够手工计算图的深度优先遍历序和广度优先遍历序。
第六章、查找
(1)掌握静态表的概念和折半查找算法,能够进行手工计算。
(2)掌握散列表的基本概念,散列函数的基本设计技巧,。
(3)掌握二叉排序树的概念,以及二叉排序树上的查找、插入、删除算法,能够进行手工计算。
第七章、内排序
(1)掌握简单选择排序、直接插入排序、交换排序的算法思想和步骤,能够写出排序过程。
(2)了解各种排序方法的特点,能够针对特定问题背景选择适当的排序方法。
《C语言程序设计》考试大纲(专升本)
课程名称:
C语言程序设计
适用专业:
数据科学与大数据技术
采用教材:
C程序设计(第五版),谭浩强 主编,清华大学出版社;
其他参考书目:
《C语言程序设计》,陈广红 主编,武汉大学出版社;
一、考试的基本要求
考生应按本大纲的要求了解或理解“C语言程序设计”中的数据类型、运算符与表达式、顺序结构、选择结构、循环控制、数组、函数、指针、预处理命令、结构体与共用体、文件的基本概念。熟练掌握程序设计的基本方法和C语言本身的语法、语句和使用方法。掌握一般问题的分析思路、数据存储结构表达及建立在存储结构之上的程序设计方法,具备初步运用C语言解决问题的程序设计能力;能熟练地阅读、理解和编制简单的C程序;具备进一步学习计算机各专业后续课程的能力和基础。
二、考试方法、时间、题型大致比例
1.考核方式:考试
2.考试时间:100分钟
3.题型大致比例
正误判断题 占10%
单项选择题 占40%
综合题(包括写程序结果、改正程序错误和程序填空等) 占30%
编程题 占20%。
三、考试内容及考试要求
第一章、数据类型、运算符与表达式
⑴理解关键字与标识符的概念、应用特点,理解数据类型的含义和常量、变量的分类。
⑵掌握各数据类型的含义、特点,不同类型常量的表达,不同类型变量的定义和赋初值方法。
⑶熟练掌握各类运算符的含义、优先级,各类表达式的表示方法、运算特点、值的类型和计算方法。能够进行各类公式的表达式描述和各类表达式的混合运算。
第二章、顺序结构程序设计
⑴了解数据输入输出的概念以及在C语言中的实现方法。
⑵掌握赋值语句表达方法;掌握两组输入输出函数的格式、表达方式和使用功能、特点。
⑶熟练掌握顺序程序设计的思想和编程方法,能够熟练编写简单问题的程序并上机调试。
第三章、选择结构程序设计
⑴掌握问题中条件的表达方式(关系表达式、逻辑表达式)和运算结果。
⑵熟练掌握编程中条件的描述方法(用不同格式的if语句或switch语句)和使用方法,能够进行各种条件下的问题的程序设计。
第四章、循环程序设计
⑴了解循环的概念,解决语句重复执行的方法。
⑵理解各种实现循环的语句的执行过程、执行步骤和相关参数量的变化情况,理解break和continue的使用形式和理由。
⑶掌握循环语句的格式和应用特点,掌握循环程序设计的方法。
第五章、数组
⑴了解数组的基本概念。
⑵掌握不同类别数组的特点,掌握数组的定义、初始化和数组元素引用方法;掌握数组的实际应用方式、特点和程序设计方法。
第六章、函数
⑴理解一般问题的解决方法和程序的结构化、模块化设计思想,理解函数的调用方法,理解变量的数据类型、存储类别,理解内部函数与外部函数的含义。
⑵掌握函数定义的一般格式,掌握形式参数的表达方式,函数返回值类型和返回值的表达方式,掌握函数调用的方法、特点和不同调用形式(嵌套调用、递归调用),掌握局部变量、全局变量的定义方法和声明形式。
第七章、指针
⑴理解指针的概念、特点,理解指针的分类、指针的数据类型描述。
⑵掌握指针的含义、不同类型指针与所指变量、数组、字符串、函数等的内在联系。
第八章、预处理命令
⑴理解预处理的含义和理由,理解文件包含的含义和宏的含义。
⑵区分宏与函数的异同点;掌握文件包含命令的使用方法。
第九章、 结构体与共用体
⑴了解C语言基本类型与构造类型的含义,了解类型声明与变量等定义的区别。
⑵掌握结构体、共用体、枚举类型的声明方法和相应变量等的定义、初始化、引用方法。
第十章、文件
⑴了解文件的含义、分类和特点。
⑵理解文件指针的使用方法,掌握文件打开与关闭、文件读写、文件定位和出错检测函数的使用方法。
⑶掌握不同问题使用文件的定义和操作方法。