spContent=《数据结构与算法》是计算机等相关专业的核心课程,主要讨论抽象数据关系和算法在计算机中的表示与实现,具体包括线性表、栈、队列、树、图、查找和排序。通过对该课程,学习者可以更加合理有效地组织、存储和处理数据,设计正确有效的算法;并能充分提升抽象思维、创造力和逻辑思维能力。
《数据结构与算法》是计算机等相关专业的核心课程,主要讨论抽象数据关系和算法在计算机中的表示与实现,具体包括线性表、栈、队列、树、图、查找和排序。通过对该课程,学习者可以更加合理有效地组织、存储和处理数据,设计正确有效的算法;并能充分提升抽象思维、创造力和逻辑思维能力。
—— 课程团队
课程概述
《数据结构与算法》是计算机等相关专业的核心课程,主要讨论抽象数据关系和算法在计算机中的表示与实现,具体包括线性表、栈、队列、树、图、查找和排序,其概念、原理和方法在程序设计与软件开发的过程中有着极其重要的指导意义。如,程序语言编译中要使用栈、散列表及语法树,操作系统中使用队列、存储管理表及目录树等设计数据元素在存储中的分配问题;数据库系统中运用线性表,多链表及索引树等进行数据管理;在人工智能领域,依求解问题性质的差异将涉及到各种不同的数据结构,如广义表.集合、树、图等。
数据结构与算法是程序设计的灵魂。通过对数据结构与算法的学习,可以更加合理有效地组织、存储和处理数据,可以设计正确的算法并能对算法进行分析和评价;可以充分锻炼我们的抽象思维、创造力和逻辑思维能力。让我们一起走进数据结构与算法的世界,领略二者相辅相成的美,为操作系统、编译原理、数据库等课程做好必要的基础准备,为大家从事Web信息处理、人工智能等理论研究、应用开发、技术管理工作提供坚实的理论基础和解决实际问题的程序设计能力!
授课目标
掌握数据的逻辑结构、存储结构以及操作的定义和实现,掌握基本的算法复杂度分析方法;能够熟练运用栈、队列 、二叉排序树、哈夫曼树、最小生成树、Dijstra算法等模型来求解工程问题。能够根据实际工程需求选择、设计合理的数据结构,设计有效的算法完成相关的数据增、删、改、查等操作。
成绩 要求
完成所有知识点的学习。
完成所有的单元测试。(占总分的30%)
完成所有的单元作业。(占总分的30%)
完成期末测试。(占总分的30%)
参与互动讨论。(占总分的10%)
课程大纲
线性表
课时目标:了解线性表结构的逻辑结构特性,掌握顺序存储定义与实现;掌握线性表结构链式存储的定义与实现;掌握栈的概念、特性与实现;掌握队列的概念、特性与实现;掌握字符串常规操作;
2.1 线性表及其顺序存储
2.2 链表
2.3 栈的基本概念与存储
2.4 栈的应用
2.5 队列
2.6 字符串匹配
2.7 字符串的模式匹配——KMP算法
二叉树
课时目标:掌握二叉树的逻辑结构、存储结构及遍历操作实现; 握堆的定义、堆操作的实现;掌握二叉搜索树的定义、操作的实现;掌握哈夫曼树的定义、实现;应用哈夫曼树进行编码和解码;了解树与森林的基本概念,掌握掌握树与二叉树的相互转换。
3.1 二叉树的概念与性质
3.2 二叉树的存储
3.3 二叉树的遍历(一)
3.4 二叉树的遍历(二)
3.5 二叉搜索树
3.6 堆与优先队列
3.7 Huffman树及其应用
图
课时目标:掌握图的概念、性质、存储实现;掌握图的遍历算法,了解图连通性判断方法;掌握构造最小生成的算法,了解相关应用;掌握最短路径算法,了解相关应用;
4.1 图的基本概念
4.2 图的存储
4.3 图的遍历
4.4 最小生成树
4.5 最短路径
4.6 关键路径
查找
课时目标:掌握基于线性结构的查找方法;掌握散列查找技术及冲突的解决方案;掌握基本的动态查找技术;
5.1 顺序查找
5.2 二分法查找
5.3 动态查找(一)(B- 插入)
5.4 动态查找(二) (B-删除)
5.5 动态查找(三) (B+)
5.6 散列查找(一) 散列函数
5.7 散列查找(二) 散列冲突
排序
课时目标:掌握内部排序算法的实现、复杂度分析。
6.1 排序的基本概念
6.2 插入排序(一) 直接插入
6.3 插入排序(二) 二分法插入 、希尔
6.4 交换排序(一) 冒泡
6.4 交换排序(二) 快速排序
6.5 选择排序
6.7 归并排序
6.8 基数排序
展开全部
预备知识
参考资料
1.《数据结构、算法及应用》. 张宪超、刘馨月、于红等 编著. 科学出版社. 2012.
2.《数据结构与算法》.许卓群著. 高等教育出版社.
4.《数据结构》.严蔚敏著.清华大学出版社.
5.《数据结构与算法-C++版》.佐兹戴克著.清华大学出版社.