数据结构与算法项目化教程
2011-2
西安电子科技大学出版社
杨文元
264
杨文元编著的这本《数据结构与算法项目化教程》以程序设计语言作为数据结构与算法的实现工具,构建了9个学习情境,分别是程序设计语言基础、认识数据结构与算法、线性表、栈和队列、串、树和二叉树、图、排序、查找与演示项目开发等。
《数据结构与算法项目化教程》的特色是对数据结构的操作全部程序化,代码完全可运行,各个学习情景都可以形成一个项目或多个项目,将枯燥的理论融入有趣的、可运行的程序实现,激发学习者的兴趣。本教程图文并茂,层次分明,逻辑清晰,详略得当。
本教程可作为高职高专院校电子信息类专业的教材。内容设置充分考虑了当前学校教学及学生的现状,对于没有程序设计语言基础的学习者,专门设置了有关程序设计语言基础的学习情境。对于有一定程序设计语言基础的学习者,可略去此部分内容。
本教程也可作为计算机学习者的参考教材。
学习情境0 程序设计语言基础
0.1 任务一 开发环境
0.1.1 子任务1 下载开发软件
0.1.2 子任务2 JDK的安装和配置
0.1.3 子任务3 NetBeansIDE的安装和配置
0.1.4 子任务4 编写及运行程序
0.2 任务二 编写程序的基础
0.2.1 子任务1 创建随机数
0.2.2 子任务2 封装与修饰符
0.2.3 子任务3 Java程序编写规范
0.2.4 子任务4 方法的重载和覆盖
0.3 任务三 构建简单操作菜单
0.3.1 子任务1 输入/输出
0.3.2 子任务2 程序控制
0.3.3 子任务3 异常处理
0.4 任务四 图形界面与事件处理
0.4.1 子任务1 图形界面演示
0.4.2 子任务2 图形演示系统的构建过程
0.4.3 子任务3 按钮事件处理
0.4.4 子任务4 编写并运行主程序
0.5 任务五 文件读/写操作
0.5.1 子任务1 创建目录和文件
0.5.2 子任务2 读取文件内容
学习情境1 认识数据结构与算法
1.1 任务一 初识数据结构和算法
1.1.1 子任务1 什么是数据结构和算法
1.1.2 子任务2 数据结构与算法的重要性
1.1.3 子任务3 数据结构与算法课程
1.2 任务二 数据结构
1.2.1 子任务1 数据的处理
1.2.2 子任务2 数据结构的分类
1.2.3 子任务3 常用的数据结构
1.3 任务三 算法
1.3.1 子任务1 认识算法
1.3.2 子任务2 算法的重要特征
1.3.3 子任务3 算法分析
1.3.4 子任务4 算法设计方法
1.3.5 子任务5 递归算法及案例
学习情境2 线性表
2.1 任务一 认识线性表
2.1.1 子任务1 初识线性表
2.1.2 子任务2 认识线性表的存储结构
2.2 任务二 程序实现线性表的顺序存储结构及操作
2.2.1 子任务1 认识线性表的顺序存储结构
2.2.2 子任务2 线性表顺序存储结构的操作算法
2.2.3 子任务3 程序实现线性表顺序存储结构的操作
2.3 任务三 程序实现线性表的链式存储结构及操作
2.3.1 子任务1 认识线性表的链式存储结构
2.3.2 子任务2 线性表链式存储结构的操作算法
2.3.3 子任务3 程序实现线性表链式存储结构的操作
2.4 任务四 线性表的应用——解决约瑟夫环问题
2.4.1 子任务1 认识约瑟夫环
2.4.2 子任务2 约瑟夫环的程序实现
学习情境3 栈和队列
3.1 任务一 栈
3.1.1 子任务1 认识栈
3.1.2 子任务2 操作栈的顺序存储结构
3.1.3 子任务3 操作栈的链式存储结构
3.2 任务二队列
3.2.1 子任务1 认识队列
3.2.2 子任务2 操作队列的顺序存储结构
3.2.3 子任务3 操作栈的链式存储结构
3.3 任务三 整合栈和队列的操作
3.3.1 子任务1 构造主程序
3.3.2 子任务2 构造菜单程序
学习情境4 串
4.1 任务一 认识串
4.1.1 子任务1 初识串
4.1.2 子任务2 串的基本运算
4.2 任务二 串的存储结构
4.2.1 子任务1 串的顺序存储结构
4.2.2 子任务2 串的链式存储结构
4.3 任务三 程序实现串的操作
4.3.1 子任务1 串的基本操作和算法
4.3.2 子任务2 创建主程序菜单
学习情境5 树和二叉树
5.1 任务一 认识树
5.1.1 子任务1 树的基础知识
5.1.2 子任务2 学习树的术语
5.1.3 子任务3 树的表示
5.2 任务二 二叉树
5.2.1 子任务1 认识二叉树
5.2.2 子任务2 二叉树的基本性质
5.2.3 子任务3 二叉树的存储结构
5.3 任务三 二叉树操作的程序实现
5.3.1 子任务1 构造二叉树的程序实现框架
5.3.2 子任务2 二叉树算法的程序实现
5.4 任务四 哈夫曼(Huffman)树
5.4.1 子任务1 认识哈夫曼树和哈夫曼编码
5.4.2 子任务2 树的路径长度
5.4.3 子任务3 哈夫曼编码的程序实现
学习情境6 图
6.1 任务一 认识图
6.1.1 子任务1 初识图
6.1.2 子任务2 再识图
6.2 任务二 图的表示
6.2.1 子任务1 图的邻接矩阵表示
6.2.2 子任务2 图的邻接表表示
6.3 任务三 图的遍历
6.3.1 子任务1 图的深度优先搜索遍历
6.3.2 子任务2 图的广度优先搜索遍历
6.4 任务四 图的应用
6.4.1 子任务1 最小生成树
6.4.2 子任务2 最短路径
6.4.3 子任务3 拓扑排序
6.5 任务五 图的程序实现
6.5.1 子任务1 构造图的遍历抽象类
6.5.2 子任务2 程序实现图的邻接矩阵表示
6.5.3 子任务3 程序实现图的邻接表表示
6.5.4 子任务4 存储图邻接矩阵的文件读/写实现
6.5.5 子任务5 图的应用的程序实现
学习情境7 排序
7.1 任务一 认识排序
7.1.1 子任务1 学习排序基础知识
7.1.2 子任务2 排序算法的指标分析
7.1.3 子任务3 程序算法的程序实现基础
7.2 任务二 插入排序
7.2.1 子任务1 直接插入排序
7.2.2 子任务2 希尔排序
7.3 任务三 交换排序
7.3.1 子任务1 冒泡排序
7.3.2 子任务2 快速排序
7.4 任务四 选择排序
7.4.1 子任务1 直接选择排序
7.4.2 子任务2堆排序
7.5 任务五 归并排序——两路归并排序
7.5.1 子任务1 归并排序
7.5.2 子任务2 归并排序的程序实现
7.6 任务六 基数排序
7.6.1 子任务1 认识基数排序
7.6.2 子任务2 基数排序程序实现
学习情境8 查找与演示项目开发
8.1 任务一 认识查找
8.2 任务二 线性表的查找
8.2.1 子任务1 顺序查找
8.2.2 子任务2 折半查找
8.2.3 子任务3 分块索引查找
8.3 任务三 二叉排序树查找
8.3.1 子任务1 认识二叉排序树查找
8.3.2 子任务2 二叉排序树查找的图形演示项目
8.4 任务四 哈希表
8.4.1 子任务1 认识哈希表
8.4.2 子任务2 哈希函数的构造
8.4.3 子任务3 冲突及处理
8.4.4 子任务4 哈希表操作演示项目
参考文献