《数据结构与算法》是计算机等相关专业的核心课程,主要讨论抽象数据关系和算法在计算机中的表示与实现,具体包括线性表、栈、队列、树、图、查找和排序,其概念、原理和方法在程序设计与软件开发的过程中有着极其重要的指导意义。如,程序语言编译中要使用栈、散列表及语法树,操作系统中使用队列、存储管理表及目录树等设计数据元素在存储中的分配问题;数据库系统中运用线性表,多链表及索引树等进行数据管理;在人工智能领域,依求解问题性质的差异将涉及到各种不同的数据结构,如广义表.集合、树、图等。
数据结构与算法是程序设计的灵魂。通过对数据结构与算法的学习,可以更加合理有效地组织、存储和处理数据,可以设计正确的算法并能对算法进行分析和评价;可以充分锻炼我们的抽象思维、创造力和逻辑思维能力。让我们一起走进数据结构与算法的世界,领略二者相辅相成的美,为操作系统、编译原理、数据库等课程做好必要的基础准备,为大家从事Web信息处理、人工智能等理论研究、应用开发、技术管理工作提供坚实的理论基础和解决实际问题的程序设计能力!
1 绪论
1.1 什么是数据结构
1.2 算法设计与分析
绪论单元测验
绪论单元作业
2 线性表
2.1 线性表及其顺序存储
2.2 链表
2.3 栈的基本概念与存储
2.4 栈的应用
2.5 队列
2.6 字符串匹配
2.7 字符串的模式匹配——KMP算法
线性表单元作业
线性表单元测验
3 二叉树
3.1 二叉树的概念与性质
3.2 二叉树的存储
3.3 二叉树的遍历(一)
3.4 二叉树的遍历(二)
3.5 二叉搜索树
3.6 堆与优先队列
3.7 Huffman树及其应用
二叉树单元作业
二叉树单元测验
4 图
4.1 图的基本概念
4.2 图的存储
4.3 图的遍历
4.4 最小生成树
4.5 最短路径
4.6 关键路径
图单元测验
5 查找
5.1 顺序查找
5.2 二分法查找
5.3 动态查找(一)
5.4 动态查找(二)
5.5 动态查找(三)
5.6 散列查找(一)
5.7 散列查找(二)
查找单元测验
6 排序
6.1 排序的基本概念
6.2 插入排序(一)
6.3 插入排序(二)
6.4 交换排序——冒泡排序
6.5 交换排序——快速排序
6.6 选择排序
6.7 归并排序
6.8 基数排序
排序单元作业
排序单元测试

