baba《数据结构》课程教学大纲课程中文名称: 数据结构。课程英文名称: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

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

七、教材及参考用书

扫码优惠购书

本书配套视频样例

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

本书配套资源(1000页PPT)

八、考核

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

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

九、配套参考书

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

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

  1. 编译原理8:递归下降分析器、扩充巴斯克范式、JavaCC

    递归下降分析器 递归下降分析器设计示例 E'不考虑follow集的隐患会被后续的子程序考虑到,所以没有问题 扩充的巴科斯范式和语法图 JavaCC简介 小结

  2. 《Python Cookbook 3rd》笔记(2.19):实现一个简单的递归下降分析器

    实现一个简单的递归下降分析器 问题 你想根据一组语法规则解析文本并执行命令,或者构造一个代表输入的抽象语法树.如果语法非常简单,你可以自己写这个解析器,而不是使用一些框架. 解法 在这个问题中,我们集 ...

  3. C++:编译实验之递归下降分析器

    一.实验目的 1.加深对递归下降分析法一种自顶向下的语法分析方法的理解. 2.根据文法的产生式规则消除左递归,提取公共左因子构造出相应的递归下降分析器. 二.实验内容 根据课堂讲授的形式化算法,编制程 ...

  4. 编译原理-递归下降分析器

    编译原理-简单的递归下降语法分析器LL(1) 在网上看了很多篇关于递归下降分析器的博文,均没有满意的,一是所写的程序不对.二是解释的不够清楚.所以想自己写一篇,顺便总结一下所学. 递归下降分析法 递归 ...

  5. 杭电编译原理实验-实验二-递归下降分析子程序设计

    递归下降分析子程序设计 实验目的 实验内容 函数定义 程序流程图 源代码 测试用例 实验目的   掌握最基本的自顶向下分析方法,即递归下降子程序方法,理解其特点和适用范围(回溯,左递归等现象),锻炼递 ...

  6. 简单计算器的设计java_(基于java的简易计算器的设计.doc

    (基于java的简易计算器的设计 基于java的简易计算器的设计 摘要 自从java语言诞生以来,java语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了 ...

  7. java扫雷设计_毕业设计Java版扫雷的设计与实现介绍

    毕业设计Java版扫雷的设计与实现介绍 java语言eclipse环境 源码+精品文档 价格98元 扫雷是一款玩法相当简单的大众化的小游戏,游戏的胜利条件是在最短的时间内根据点击格子出现的数字找出所有 ...

  8. msgpack java_让java版msgpack支持Object类型

    msgpack是一种高效的二进制序列化格式,官方链接提供了很多中语言的实现,Java作为常用的开发语言之一,官方也提供了支持. Java版的实现官方也提供了一些QuickStart教程,这里就不多说了 ...

  9. 数据结构 c c java_用java做开发,却学c语言的数据结构,这样好吗?

    数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构. 顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻 ...

最新文章

  1. Decorator pattern
  2. ubuntu 安装sun-java5-jdk
  3. ios 开发证书导出p12文件_开发者在上传企业签名的应用到后,做到如下几点
  4. 机器学习(三)——朴素贝叶斯方法、SVM(1)
  5. python中的命令行参数_python学习笔记6:命令行参数
  6. 卷积神经网络(CNN)介绍
  7. 两种方式从Mac计算机上的启动板菜单中删除应用程序?
  8. html英文特殊字体代码,字体_中英文字体等(示例代码)
  9. Vue中模板渲染原理
  10. 云计算现在好就业吗?薪资怎么样?
  11. 核定征收的个体户,年营业额不超过120万,还需要缴纳个税吗?
  12. Flurry——统计和分析用户行为
  13. karabiner macOs Sierra不可用后的临时解决方法
  14. 通过身份证号码得出性别和年龄
  15. Mac U盘安装High Sierra
  16. netcat基本使用方法总结
  17. Mac下的SVN客户端
  18. 在Photoshop中绘制变形金刚
  19. 高新技术企业申请容易吗?如何提高申报通过的机率?
  20. 订单BOM -销售BOM-标准BOM

热门文章

  1. SQL Server 2012 各版本功能比较
  2. 数据结构(严蔚敏)------双链循环线性表
  3. python编程(编写opengl程序)
  4. suse安装mysql_SuSE12安装MySQL5.7.22:编译安装方式、单实例
  5. proteus中使用虚拟串口实现单片机和上位机通讯
  6. java json插件安装_IDEAL葵花宝典:java代码开发规范插件:GsonFormat插件将JSONObject格式的String 解析成实体...
  7. vscode括号颜色插件_[VSCode插件推荐] Bracket Pair Colorizer: 为代码中的括号添上一抹亮色...
  8. html页面 sql注入,使用html仅阻止SQL注入
  9. java default value_java-如何为@RequestParam的defaultValue提供表达式
  10. SQLi LABS Less-8