《数据结构》课程教学大纲.pdf
数据结构
课程编号:B3I09241A
课程中文名称:数据结构
课程英文名称:Datastructure
开课学期:秋季
学分/学时:3/48(含16学时上机)
先修课程:C语言程序设计
建议后续课程:数理逻辑与集合论、组合与图论、理论计算机科学
适用专业/开课对象:数学与应用数学、信息与计算、统计学等/二年级本科生
一、课程的性质、目的和任务
本课程主要研究数据表示与存储的方法、抽象的逻辑结构及其上定义的各种基本操作。数据
的逻辑结构常常采用数学描述的抽象符号和相关理论。如使用串、表、数组、树、图等结构和理
论来表示数据在存储时的逻辑结构,研究这些结构上定义的各种操作。研究数据结构的目的就是
为各种计算机应用提供处理对象的数据表示和存储结构。
本课程讲授力求以问题求解为核心,从问题抽象、数据抽象和算法抽象的角度来组织数据结
构与算法的设计,建立数学模型、使用不同数据结构不同的算法分别去解决问题,探讨各种数据
结构和算法的优缺点,使学生学会如何根据实际问题来选择数据结构和算法。
数据结构与算法介绍基本数据结构、基本算法分析技术、排序、检索和索引技术。对常用的
基本数据结构,讨论相应的存储实现技术和经典算法,并通过算法时间空间的效率分析,介绍时
空权衡的原则。
本课程重点支持以下毕业要求指标点:
1)系统地掌握信息学与计算数学的专业知识。
2)系统地掌握信息学与计算数学的专业知识。
3)具有一定的算法设计与软件实现能力。
二、课程内容、基本要求及学时分配
1.线型结构(10课内学时)
1
基本概念和术语;抽象数据类型的表示与实现;算法和算法分析;线性结构;线性表;栈和
队列;串;数组和广义表。
上机实验:第二周、第四周、第六周、第八周(8学时),熟悉环境平台;线型表实现一元多
项式的相加(顺序存储或链式存储);用栈实现表达式求值。
主要支持毕业要求指标点1)、2)、3)。
2.树结构和图结构(10课内学时)
树的定义和基本术语;二叉树;遍历二叉树和线索二叉树;树和森林;赫夫曼树及其应用;
图的定义和术语;图的存储结构;图的遍历;最短路径。
上机实验:第十周、第十二周(4学时),遍历二叉树及线索化;Prim算法
主要支持毕业要求指标点1)、2)、3)。
3.查找和排序(12课内学时)
静态查找树;动态查找树,二叉排序树,平衡因子,多路平衡树;哈希表,冲突;内部排序;
插入排序,希尔排序;交换排序,冒泡排序,快速排序;选择排序,堆排序;归并排序;基数排
序。
上机实验:第十四周、第十六周(4学时),希尔排序;快速排序
主要支持毕业要求指标点1)、2)、3)。
三、教学方法
在这种理论性(代数理论)和实践性(算法设计与实现)都很高的课程教学过程中,应当采
用“教师理论联系实际、学生实践体会理论”教学思想,借助现代化信息平台实现教学开放式互
动,即基于问题的教学、上机实现、专题讨论、文献阅读等教学方法实现。
教学方式:理论教学与上机实习(16学时)相结合;每周授课2学时,6道上机实习题目。
四、课内外教学环节及基本要求
本课程的教学安排包括理论教学、上机实验、在线交互等,每周授课2学时,每隔一周有一
次上机(2学时*816学时)。
本课程涉及理论教学(32学时)和上机实验(16学时)两部分内容。全部介绍不可能也不必
要。针对其自身特点和整个课程体系的约束,教学点围绕数据结构和算法展开。首先介绍线性结
构,重点介绍线型表、栈和队列。辅之以上机实验(线性表实现一元多项式运算、栈实现表达式
求值);随后介绍非线性结构树和图,上机实验(遍历二叉树及线索化、Prim算法);最后学习查
找表和排序,上机实验(希尔排序、快速排序)。
2
理论教学既要反映数学(代数理论)对静态结构的支撑作用,又要体现算法的动态作用。这
些恰好与面向对象的设计方法相合。还要注意掌握算法复杂度的分析(Big-O方法)。算法的具体
实现则反映了