《数据结构》是计算机科学与技术、软件工程、医学信息工程专业及相关专业的教学计划中的核心课程,也是信息管理与信息系统及电子商务等相关专业的专业基础课,更是大部分高校相关专业考研必考科目。
该课程在数据结构、算法及抽象数据类型等概念的基础上,介绍线性表、栈、队列和串、数组、树和二叉树、图等常用数据结构,并讨论查找、排序和索引技术。
通过学习该课程,学生可以掌握有关应用软件所需各种数据结构知识,掌握计算机软件设计中的算法知识,提高算法分析和设计能力,并为后续专业课程的学习奠定基础。
该课程看似偏理论,实则与实际生活息息相关,学习起来很有意思。
通过教学,学生获得有关的应用软件所要用到的各种数据结构知识,掌握常用的数据结构及内在的逻辑关系,掌握计算机软件设计中的算法知识,提高软件设计和编程技能。初步学会对不同的存储结构和相应算法的对比,有一定的算法改进能力。在学习中提高专业学习的自信、兴趣和自觉性,并感悟程序设计者的严谨的态度。结合研究型教学、自主性学习,了解数据结构的最新发展动态,以树立科学精神和创新思维。
(一)知识与技能
1、知道《数据结构与算法分析》这门学科的性质、在计算机科学中的地位和独立价值。知道这门学科的研究范围、应用领域、研究方法。
2、掌握与数据结构有关的基本概念、明确数据的逻辑结构和物理结构的差别。
3、掌握各种主要数据结构线性表、栈、队列、串、树和图的特点、计算机内的表示方法,以及处理数据的算法实现。
4、会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并了解对算法的时间分析和空间分析技术。
5、注重培养学生独立思考能力,学会科学地分析和解决问题。
6、培养学生运用数据结构和程序设计语言通过计算机解决实际问题的能力。
7、培养学生进一步提高程序设计质量的能力。
(二)过程与方法
每一种数据结构的学习基本都是从提出具体问题到分析并抽象问题中的数据和操作,再定义一个类来表示,最后用一个具体的对象去表示实际问题中的处理对象,并设计算法解决实际问题,通过具体-抽象-具体的转换,让学生将理论与实际相结合。通过这一过程培养学生数据抽象的能力,能为应用涉及的数据选择合适的逻辑结构,同时培养学生计算机思维方式的能力,能为各种逻辑结构设计合适的存储结构。
多种数据结构的学习采用循序渐进的方式,从最简单的线性表到特殊的线性表(栈、队列和串),再到广义线性表(数组),然后过渡到非线性结构中的比较简单的一对多关系的树结构,最后才学习最复杂的多对多关系的图结构,每一种数据结构的学习则先理解逻辑定义,在借助ADT加入操作,但不设计如何实现,最后通过存储结构加以实现。这样的学习让学生由易到难,逐步加深对数据结构的理解。
整个课程的学习采用线上线下混合模式,教学平台上有录制好的教学视频和大量教学资源供学生线上学习,线下的课堂上则运用PBL、案例法等多种教学手段让学生主动思考和学习,实验任务则多布置与实际关联的任务,帮助学生将所学的理论知识加以运用,并要求学生提交实验报告,对每次的实验进行总结和反思,从而达到学以致用举一反三的效果。
(三)情感态度与价值观目标
1、培养了学生具有新时代中国特色社会主义建设者应具有的素质
2、具备运用数据结构的理论方法进行高质量程序设计的素质
3、具有良好的团队合作精神。
4、培养学生求真务实、讲求时效和一丝不苟的学习态度。
5、关注学科发展趋势和应用前景,注重培养学生的对新技术的探究精神。
6、为学生形成良好的职业道德打下基础。
第一单元 绪论
第1讲 数据结构相关概念
第2讲 算法及算法分析
绪论
第二单元 线性表
第1讲 线性表的逻辑结构
第2讲 线性表的顺序存储结构
第3讲 线性表的链式存储结构
单元测验-线性表
第三单元 特殊线性表
第1讲 栈
第2讲 队列
第3讲 字符串
单元测试-特殊线性表
第四单元 广义线性表
第1讲 多维数组的定义及存储
第2讲 特殊矩阵和稀疏矩阵的压缩存储
单元测试-广义线性表
第五单元 树和二叉树
第1讲 树及森林的逻辑结构和遍历
第2讲 树的存储结构
第3讲 二叉树的定义和性质
第4讲 二叉树的遍历和存储实现
第5讲 二叉树与树及森林的转换
第6讲 哈夫曼树及哈夫曼编码
单元测试-树
第六单元 图
第1讲 图的逻辑结构及术语
第2讲 图的存储结构
第3讲 图的遍历
第4讲 最小生成树
第5讲 最短路径
第6讲 拓扑排序和关键路径
单元测试-图
第七单元 查找
第1讲 顺序查找和二分查找
第2讲 二叉排序树
第3讲 散列表
单元测试--查找
第八单元 排序
第1讲 简单选择排序和堆排序
第2讲 直接插入排序和希尔排序
第3讲 冒泡排序和快速排序
第4讲 归并排序及排序总结
单元测试--排序
具备C或C++程序设计基础及离散数学基础。
1. 教材
《数据结构-从概念到C++实现(第3版)》 王红梅等主编 清华大学出版社 2019年5月出版
2. 参考资源
(1)电子资源:《数据结构》 南京中医药大学教学平台
https://e.njucm.edu.cn/eol/homepage/common/
(2)数据结构参考书:
①《趣学数据结构》陈小玉 编著.人民邮电出版社,2020年
②《数据结构、算法与应用(C++语言描述))》萨特吉·萨尼(Sartaj Sahni)编著 机械工业出版社,2015年
③《数据结构与算法分析》,Clifford A. Shaffer著,张铭等译,电子工业出版社,2013年
Q : 课程共多少周课?如何拿到学分?
A : 正式教学周共15周,平时作业、单元测验、讨论区、期末考试都合格,即可拿到学分。
Q : 需要安装什么实验环境?
A : 建议安装VS2010及以上版本。