- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构》课程教学大纲
课程编号:806302024
课程名称:数据结构
英文名称:Data Structure
课程类型:专业基础课
总 学 时:72 讲课学时:56 实验学时:16
学 时:72
学 分:4.5
适用对象:计算机科学与技术专业本科生
先修课程:C/C++语言程序设计、Java语言程序设计、离散数学
一、课程性质、目的和任务
数据结构课程是计算机科学与技术专业本科学生必修的一门专业基础课程。
数据结构是软件设计的重要理论和实践基础,数据结构设计和算法设计是软件系统设计的核心。数据结构课程的任务是,讨论数据的各种逻辑结构、在计算机中的存储结构以及各种操作的算法设计。数据结构课程的主要目的是,培养学生掌握处理数据和编写高效率软件的基本方法,为学习后续专业课程以及进行软件开发打下坚实基础。
二、教学基本要求
数据结构是理论与实践并重的课程,既要掌握数据结构的基础理论知识,掌握算法设计和分析方法,熟练运用一种程序设计语言编制具有中等难度的应用程序;也要掌握运行和调试程序的基本技能,在实践中培养独立分析问题和解决问题的作风和能力。
本课程采用Java语言及面向对象程序设计方法描述数据结构和算法。
本课程教学的基本要求说明如下。
1.理解线性表、串、栈、队列、数组、广义表、树、二叉树、图、散列表等数据结构的基本概念,掌握它们的存储结构及各种操作的实现方法。
2.理解各种数据结构的查找操作要求,掌握在线性表、二叉树中采用的查找算法及查找效率分析方法。掌握插入、交换、选择、归并等排序算法,掌握排序算法效率分析方法。
3.熟练运用Java语言及面向对象程序设计方法描述各种抽象数据类型,表达它们的存储结构,实现在各存储结构上的各种操作。掌握递归算法设计方法。
4.掌握在MyEclipse集成开发环境中编辑、编译、运行和调试程序的方法,具备运行和调试程序的基本技能,能够发现程序错误、及时找到错误所在并改正错误,重点和难点是运用单步运行、设置断点、查看变量运行时值等程序调试技术,发现并改正程序逻辑错误。
三、教学内容及要求
1.绪论
① 了解数据结构的基本概念,了解数据的逻辑结构、数据的存储结构和数据操作,了解抽象数据类型与数据结构的关系。
② 了解算法、算法描述、算法设计目标和算法分析方法,掌握算法的时间复杂度和空间复杂度的分析方法。
2.线性表
① 理解线性表的逻辑结构和基本操作,掌握线性表抽象数据类型的描述方法。
② 掌握线性表的顺序存储结构和实现方法。
③ 掌握线性表的链式存储结构及其特点,掌握实现单链表、循环单链表、双链表、循环双链表基本操作的设计方法。比较两种存储结构的特点和性能。
3.串
① 理解串的概念和串的基本操作,熟悉串的顺序存储结构和链式存储结构。
② 掌握串的定义和基本操作的实现方法。
③ 掌握两种串的模式匹配算法:Brute-Force算法和KMP算法。
4.栈和队列
① 理解栈的概念和作用,掌握顺序栈和链式栈的设计方法,熟悉使用栈的算法设计方法。
② 理解队列的概念和作用,掌握顺序循环队列和链式队列的设计方法,熟悉使用队列的算法设计方法。熟悉优先队列的概念、设计和使用方法。
③ 理解递归定义,掌握递归算法设计方法。
5.数组和广义表
① 理解数组的概念,理解一维数组和二维数组的存储结构。
② 熟悉三角矩阵等特殊矩阵的压缩存储方法;熟悉稀疏矩阵的各种压缩存储方法,包括稀疏矩阵三元组顺序表、单链表、行/列的单链表和十字链表存储结构。
③ 理解广义表的概念,熟悉广义表双链表示的存储结构和操作实现。
6.树和二叉树
① 理解树的定义、术语、表示方法、遍历规则和多种存储结构,掌握采用树的孩子兄弟链表存储树并实现树的遍历、插入、删除等操作。
② 理解二叉树的定义、性质、遍历规则和存储结构,掌握采用二叉链表或三叉链表存储结构存储二叉树的特点,掌握二叉树的遍历、构造、插入、删除等操作算法,比较二叉树遍历的递归算法与非递归算法的特点。
③ 理解线索二叉树概念,熟悉其存储结构,掌握中序线索二叉树的遍历、线索化、求后继结点、插入等基本操作算法。
④ 理解Huffman编码在数据压缩中的作用,理解Huffman树的概念,掌握Huffman算法实现构造Huffman树。
7.图
① 理解图的基本概念和术语。
② 掌握图的邻接矩阵和邻接表存储结构。
③ 实现图的深度优先遍历和广度优先遍历算法。
④ 理解最小生成树的概念,掌握两种构造图的最小生成树算法:Prim和Kruskal算法。
⑤ 理解最短路径问题的概念,熟悉求单源最短路径的Dijkstra算法和求所有最短路径的Floyd算法。
8.查找
① 理解查找的基本概念和查找算法效率的分析方法。
② 掌握线性表的顺序查找、有序顺序表的折半查找、索引顺序表的
文档评论(0)