递归下降分析器的设计java_数据结构(Java版)教与学(48和60学时教学大纲)

baba f2252469-6913-eb11-8da9-e4434bdf6706.jpeg 《数据结构》课程教学大纲 课程中文名称 : 数据结构。 课程英文名称:Data Structures。 课程类别:专业基础课 必修。 课程学分数:4(16学时为1学分) 课程学时数:讲课48学时,上机16学时。 授课对象:计算机科学与技术专业。 本课程的前导课程:高级语言程序设计。 本课程的后续课程:操作系统、数据库应用技术等。 一、教学目的 《数据结构》是计算机专业一门重要的专业基础课。通过本课程的学习,使得学生从数据逻辑结构、存储结构和基本运算算法设计三个层面掌握基本的数据组织和数据处理方法,能够从问题出发设计面向数据结构的求解算法,具有一定的算法时间复杂度和空间复杂度分析能力。为后续课程如操作系统等课程学习打下基础。 二、教学要求 通过讲授和上机实验,使学生领会数据结构的基本原理,掌握线性表、栈和队列、串、数组和稀疏矩阵、树和二叉树、图、查找和排序等基本数据结构及其相关算法设计方法,具备数据组织、数据存储和数据处理能力,利用数据结构方法求解实际问题的能力。

三、授课课时安排(48学时)

知识单元

涵盖知识点情况*

知识点学时

小计

1、绪论

1.1  什么是数据结构

1.2  算法及其描述

1

2

1.3  算法分析:

   ①算法时间复杂度分析;②算法空间复杂度分析

1

2、线性表

2.1  线性表的定义

2.2  线性表的顺序存储结构:

   ①顺序表以及线性表基本运算算法在顺序表中的实现;②顺序表的应用算法设计示例

2

6

2.3  线性表的链式存储结构:

   ①单链表以及线性表基本运算算法在单链表中的实现;②单链表的应用算法设计示例;③双链表以及线性表基本运算算法在双链表中的实现;④双链表的应用算法设计示例;⑤循环链表

2

2.4  顺序表和链表的比较

2.5  线性表的应用:

   求解两个多项式相加问题

2

3、栈和队列

3.1  栈:

   ①栈的定义;②顺序栈及其实现;③顺序栈的应用算法设计示例;④链栈及其实现;⑤链栈的应用算法设计示例  

2

6

   ⑦栈的综合应用(用栈求解简单表达式求值问题,用栈求解迷宫问题)

1

3.2  队列:

   ①队列的定义;②顺序队及其实现;③顺序队的应用算法设计示例;④链队及其实现;⑤链队的应用算法设计示例  

2

   ⑦队列的综合应用(用队列求解迷宫问题)

1

4、串

4.1 串的基本概念

4.2  串的存储结构—顺序串和链串

1

2

4.4串的模式匹配:

   ①BF算法;②KMP算法

1

5、递归

5.1  什么是递归

   ①递归的定义;②何时使用递归;③递归模型;④递归的执行过程;⑤递归算法的时空分析

1

2

5.2 递归算法的设计:

   ①递归算法设计的步骤;②基于递归数据结构的递归算法设计;③基于归纳方法的递归算法设计

1

6、数组和稀疏矩阵

6.1 数组:

   ①数组的基本概念;②数组的存储结构

6.2  特殊矩阵的压缩存储:

   ①对称矩阵的压缩存储;②三角矩阵的压缩存储;③对角矩阵的压缩存储

6.3 稀疏矩阵:

   ①稀疏矩阵的三元组表示;②稀疏矩阵的十字链表表示

2

2

7、树和二叉树

7.1  树:

   ①树的定义和逻辑表示;②树的基本术语;③树的性质;④树的基本运算;⑤树的存储结构

1

7

7.2  二叉树:

   ①二叉树的概念;②二叉树的性质;③二叉树存储结构;④二叉树的递归算法设计;⑤二叉树的基本运算及其实现

2

7.3 二叉树先序、中序和后序遍历:

   ①二叉树遍历的概念;②先序、中序和后序遍历递归算法;③递归遍历算法的应用  

1

7.4  二叉树的层次遍历:

   ①层次遍历过程;②层次遍历算法设计;③层次遍历算法的应用

1

7.5  二叉树的构造

7.6 线索二叉树

1

7.7 哈夫曼树

7.8 二叉树与树、森林之间的转换

1

8、图

8.1  图的基本概念

8.2  图的存储结构:

   ①邻接矩阵;②邻接表

1

7

8.3  图的遍历:

   ①图遍历的概念;②深度优先遍历;③广度优先遍历;④非连通图的遍历;⑤图遍历算法的应用

2

8.4 生成树和最小生成树:

   ①生成树和最小生成树的概念;②普里姆算法;③克鲁斯卡尔算法

1.5

8.5 最短路径:

   ①最短路径的概念;②狄克斯特拉算法;③弗洛伊德算法

1.5

8.6  拓扑排序

8.7  AOE网与关键路径

1

9、查找

9.1  查找的基本概念

9.2 线性表的查找:

   ①顺序查找;②折半查找;③索引存储结构和分块查找

2

7

9.3 树表的查找:

   ①二叉排序树;②平衡二叉树;③B-树和B+树

3

9.4 哈希表查找:

   ①哈希表的基本概念;②哈希函数构造方法;③哈希冲突解决方法;④哈希表查找及性能分析  

2

10、排序

10.1 排序的基本概念

10.2 插入排序:

   ①直接插入排序;②折半插入排序;③希尔排序

2

6

10.3 交换排序:

   ①冒泡排序;②快速排序

1

10.4 选择排序:

   ①简单选择排序;②堆排序

1

10.5 归并排序:

   ①自底向上的二路归并排序;②自顶向下的二路归并排序

10.6 基数排序

10.7  各种内排序方法的比较和选择

2

11、复习

课程知识点归纳和总结

1

1

*教材中所有带"*"的内容均为提高知识点,不作为课堂讲授内容以减少课堂学时。

四、上机课时安排(16课时)

知识单元

实验内容

学时

1、线性表

上机实验题**

3

2、栈和队列

上机实验题

3

3、树和二叉树

上机实验题

3

4、图

上机实验题

3

5、查找和排序

上机实验题

4

**上机实验题均来自于教材,教师可以根据学生的情况选择相应的题目。

五、授课课时安排(60学时)

知识单元

涵盖知识点情况*

知识点学时

小计

1、绪论

1.1 什么是数据结构

1.2 算法及其描述

1

3

1.3 算法分析:

   ①算法时间复杂度分析;②算法空间复杂度分析

1

1.4 数据结构的目标

1

2、线性表

2.1 线性表的定义

2.2 线性表的顺序存储结构:

   ①顺序表以及线性表基本运算算法在顺序表中的实现;②顺序表的应用算法设计示例;③ArrayList顺序表容器

3

8

2.3 线性表的链式存储结构:

   ①单链表以及线性表基本运算算法在单链表中的实现;②单链表的应用算法设计示例;③双链表以及线性表基本运算算法在双链表中的实现;④双链表的应用算法设计示例;⑤循环链表;⑥LinkedList链表容器及其应用

3

2.4 顺序表和链表的比较

2.5 线性表的应用:

   求解两个多项式相加问题

2

3、栈和队列

3.1 栈:

   ①栈的定义;②顺序栈及其实现;③顺序栈的应用算法设计示例;④链栈及其实现;⑤链栈的应用算法设计示例;⑥Java中的栈容器Stack

2

6

   ⑦栈的综合应用(用栈求解简单表达式求值问题,用栈求解迷宫问题)

1

3.2 队列:

   ①队列的定义;②顺序队及其实现;③顺序队的应用算法设计示例;④链队及其实现;⑤链队的应用算法设计示例;⑥Java中的队列接口Queue

2

   ⑦队列的综合应用(用队列求解迷宫问题)

1

4、串

4.1 串的基本概念

4.2 串的存储结构—顺序串和链串

4.3 Java中的字符串

1

3

4.4串的模式匹配:

   ①BF算法;②KMP算法

2

5、递归

5.1 什么是递归:

   ①递归的定义;②何时使用递归;③递归模型;④递归的执行过程;⑤递归算法的时空分析

1

3

5.2 递归算法的设计:

   ①递归算法设计的步骤;②基于递归数据结构的递归算法设计;③基于归纳方法的递归算法设计

2

6、数组和稀疏矩阵

6.1 数组:

   ①数组的基本概念;②数组的存储结构;③Java中的数组;④数组的应用

1

3

6.2 特殊矩阵的压缩存储:

   ①对称矩阵的压缩存储;②三角矩阵的压缩存储;③对角矩阵的压缩存储

1

6.3 稀疏矩阵:

   ①稀疏矩阵的三元组表示;②稀疏矩阵的十字链表表示

1

7、树和二叉树

7.1 树:

   ①树的定义和逻辑表示;②树的基本术语;③树的性质;④树的基本运算;⑤树的存储结构

1

9

7.2  二叉树:

   ①二叉树的概念;②二叉树的性质;③二叉树存储结构;④二叉树的递归算法设计;⑤二叉树的基本运算及其实现

2

7.3 二叉树先序、中序和后序遍历:

   ①二叉树遍历的概念;②先序、中序和后序遍历递归算法;③递归遍历算法的应用;④先序、中序和后序遍历非递归算法

2

7.4 二叉树的层次遍历:

   ①层次遍历过程;②层次遍历算法设计;③层次遍历算法的应用

1

7.5 二叉树的构造

7.6 线索二叉树

1

7.7 哈夫曼树

7.8 二叉树与树、森林之间的转换

1

7.9 树算法设计和并查集

1

8、图

8.1 图的基本概念

8.2 图的存储结构:

   ①邻接矩阵;②邻接表

1

8

8.3  图的遍历:

   ①图遍历的概念;②深度优先遍历;③广度优先遍历;④非连通图的遍历;⑤图遍历算法的应用

2.5

8.4 生成树和最小生成树:

   ①生成树和最小生成树的概念;②普里姆算法;③克鲁斯卡尔算法

1.5

8.5 最短路径:

   ①最短路径的概念;②狄克斯特拉算法;③弗洛伊德算法

1.5

8.6 拓扑排序

8.7 AOE网与关键路径

1.5

9、查找

9.1 查找的基本概念

9.2 线性表的查找:

   ①顺序查找;②折半查找;③索引存储结构和分块查找

2

7

9.3 树表的查找:

   ①二叉排序树;②平衡二叉树;③Java中的TreeMap和TreeSet集合;④B-树和B+树

3

9.4 哈希表查找:

   ①哈希表的基本概念;②哈希函数构造方法;③哈希冲突解决方法;④哈希表查找及性能分析;⑤Java中的HashMap和HashSet集合

2

10、排序

10.1 排序的基本概念

10.2 插入排序:

   ①直接插入排序;②折半插入排序;③希尔排序

2

8

10.3 交换排序:

   ①冒泡排序;②快速排序

1

10.4 选择排序:

   ①简单选择排序;②堆排序

1

10.5 归并排序:

   ①自底向上的二路归并排序;②自顶向下的二路归并排序

10.6 基数排序

10.7 各种内排序方法的比较和选择

2

10.8 外排序:

   ①生成初始归并段的方法;②多路归并方法

2

复习

课程知识点归纳和总结

2

2

*教材中部分带"*"的内容作为提高知识点,不作为课堂讲授内容。

六、上机课时安排(20课时)

知识单元

实验内容

学时

1、线性表

上机实验题+在线编程题**

3

2、栈和队列

上机实验题+在线编程题

3

3、串

上机实验题+在线编程题

2

4、树和二叉树

上机实验题+在线编程题

3

5、图

上机实验题+在线编程题

3

6、查找

上机实验题+在线编程题

3

7、排序

上机实验题+在线编程题

3

**上机实验题和在线编程题均来自于教材,教师可以根据学生的情况选择相应的题目。

七、教材及参考用书

f6252469-6913-eb11-8da9-e4434bdf6706.jpeg

fd252469-6913-eb11-8da9-e4434bdf6706.jpeg

扫码优惠购书

本书配套视频样例

本书系统地介绍了各种常用的数据结构以及查找和排序的各种算法,阐述了各种数据结构的逻辑关系、存储表示及基本运算,并采用Java语言描述数据组织和算法实现,所有算法的程序均在Java1.8中调试通过。 全书既注重原理又注重实践,配有大量图表和示例,内容丰富,概念讲解清楚,表达严谨,逻辑性强,语言精练,可读性好。书中提供了丰富的练习题、实验题和在线编程题,配套的《数据结构教程(Java)学习与实验指导》详细给出了本书练习题的解题思路和参考答案,以及在线编程题的AC代码。

01262469-6913-eb11-8da9-e4434bdf6706.png

本书配套资源(1000页PPT)

06262469-6913-eb11-8da9-e4434bdf6706.jpeg

1f262469-6913-eb11-8da9-e4434bdf6706.jpeg

24262469-6913-eb11-8da9-e4434bdf6706.jpeg

28262469-6913-eb11-8da9-e4434bdf6706.jpeg

31262469-6913-eb11-8da9-e4434bdf6706.jpeg

37262469-6913-eb11-8da9-e4434bdf6706.jpeg

3e262469-6913-eb11-8da9-e4434bdf6706.jpeg

45262469-6913-eb11-8da9-e4434bdf6706.jpeg

八、考核

(1)期末考试:期末考试形式为笔试,一般以闭卷方式进行。

(2)课程成绩评定方法:期末考试成绩、课后作业、上机实验(含实验报告)和其他。后三项所占成绩比例加起来不低于30%。

九、配套参考书

48262469-6913-eb11-8da9-e4434bdf6706.jpeg

4d262469-6913-eb11-8da9-e4434bdf6706.jpeg

53262469-6913-eb11-8da9-e4434bdf6706.jpeg

扫码,优惠购买数据结构考研宝典

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值