数据结构是计算机学科本科教学计划中的骨干基础课程,对学生基本的计算机问题求解能力的培养具有重要意义。
作为一门必修课程,该课程既是对以往课程的深入和扩展,也是为将来更加深入地学习其他专业课程打下基础。课程中所学的排序问题的算法以及基本的线性表、树、图等数据结构,是计算机学科的基本功。B+树、散列等高级数据结构,也是数据库、操作系统、编译原理、计算机网络等后续课程的基础。
本课程适合在大学二年级开设,学生应先修程序设计课程,以具备一定的程序设计基础;数据结构的主要逻辑结构是线性表、树、图,因此离散数学是重要基础;在算法效率分析中,需要运用初步概率知识,因此学生应该具备一定的概率基础。
内容简介:
本课程的知识体系主要涉及三部分内容:
(1)数据结构的基本概念(第1章),包括数据的逻辑结构、存储结构、算法及算法的时间复杂度分析。
(2)三种典型逻辑结构及其应用。包括线性结构(第2、3、4章),具体分为线性表的顺序存储与链式存储,栈与队列,数组与 特殊矩阵等内容;树型结构(第6、7章),主要包括树与二叉树,树的性质,二叉树的存储与遍历等算法;图型结构(第8章),主要包括图的邻接矩阵与邻接表存储结构,图的遍历、最小生成树、最短路径、拓扑排序、关键路径等图算法。
(3)三类典型算法,包括递归(第5章),包括递归程序的执行过程,递归程序到非递归程序的转换等内容;检索(第9章),包括线性表的检索、二叉排序树、Huffman树、B树、散列等检索结构与算法;排序(第10章),包括选择排序、插入排序、交换排序、归并排序与基数排序等算法思想与实现等内容。
教学目标:
知识目标:掌握数据结构的基本概念,理解算法与算法分析的基本方法,掌握线性结构、树型结构和图型结构的实现方法,理解栈、队列等数据结构的应用场合并能正确应用;熟练掌握递归、检索和排序算法思想并能应用该解法进行问题求解。
能力目标:能够根据所求解问题的性质选择合理的数据结构并设计合理的算法进行问题求解,能够应用数据结构知识创新性地解决实际问题。
素质目标:坚持知识、能力、素质有机融合,关注信息技术发展的新技术与新趋势,提升课程的高阶性,突出课程的创新性,增加课程的挑战度,发展面向未来从事计算机科学技术工作所需要的自主学习与计算思维能力,培养团队协作能力与科学精神。
通过本课程的学习,学生将:
(1)掌握数据结构的基本概念,理解算法与算法分析的基本方法;
(2)掌握线性结构、树型结构和图型结构的实现方法;
(3)理解栈、队列等数据结构的应用场合并能正确应用;
(4)熟练掌握递归、检索和排序算法思想并能应用该解法进行问题求解。
通过对上述内容的学习,使学生能够根据所求解问题的性质选择合理的数据结构并对时间和空间复杂性进行必要的控制。能够应用数据结构知识解决实际问题,培养学生计算思维能力。通过课内实验,综合性课程设计的实训,提高实践编程能力,并在项目设计过程中培养团队协作精神,从而促进学生素质,能力的全面提高。
计算机类相关专业,如计算机科学与技术、软件工程、网络工程、物联网工程、数字媒体与技术、信息管理与信息系统、大数据科学与技术、人工智能本科学生,或计算机算法爱好者均可进行学习,由于课程算法采用C程序设计语言描述,要求学习对象具有一定C编程基础。

