1/7《数据结构与算法》课程教学大纲DataStructureAndAlgorithm课程编码:XJB08006课程类别:学科基础课程先修课程:程序设计基础、高等数学、线性代数后修课程:操作系统、算法分析与设计、面向对象程序设计总学分:4总学时:64周学时:4适用专业:软件工程、计算机科学与技术开课单位:信息科学技术学院授课教师:常静一、教学目标及教学要求数据结构与算法是计算机科学与技术、数字媒体技术、软件工程专业的一门重要学科基础课,是必修课
主要内容包括:线性表、栈和队列、串、数组和广义表、树、图、查找算法和排序算法
数据结构研究数据的组织方式,内容丰富、学习量大,隐含在各部分内容中的方法和技术多,旨在让学生掌握计算机软件系统所必需的数据结构的算法
要求学生掌握贯穿全课程的动态链表存储结构,掌握算法设计的动态性和抽象性
要求学生学会分析研究计算机加工的数据对象的特征,以便在实际应用中选择适当的数据结构、存储结构和相应算法,初步掌握算法的时间与空间性能分析技巧,并培养复杂程序设计的技能
二、本课程的重点和难点(一)课程的重点:数据结构的逻辑结构、存储结构以及基本操作的概念及相互关系
线性表顺序存储实现中的创建、查找、插入和删除等基本操作及相关算法
栈、队列的定义、特点、性质
数组的存储表示方法,稀疏矩阵的压缩存储方法,广义表的定义
二叉树的定义、结构特点和性质,先序、中序、后序遍历的递归和非递归算法,二叉树的线索化过程和算法,最优二叉树的特性及建立2/7最优二叉树的算法,哈夫曼编码的算法
图的定义、术语、结构特点和性质,图的邻接矩阵、邻接表的存储结构及其构造方法,图的深度优先搜索和广度优先搜索算法,连通图的最小生成树算法,有向无环图的拓扑排序算法、关键路径的算法,最短路径求解中的Dijkstra算法和Floyed算法
简单插入排序、希尔排序、冒泡排序、快速排序、选择排序、