- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构(英)本科 教学大纲
课程编号:040301
课程类别:自然
先修课程:C++语言程序设计、离散数学
适用专业:计算机科学与技术,信息计算与科学,信息安全,地理信息系统
课程学分/学时:4学分/ 64学时(讲课54学时,上机10学时)
性质与任务:
《数据结构》是计算机科学特别是计算机软件的一门重要基础课程,计算机科学各领域都要使用这些基本数据结构和基本算法。如编译要使用多维数组及广义表、散列表及语法树;操作系统要使用线性表、多链表等结构;人工智能要用到树、图、广义表等复杂的数据结构。通过本课程的理论学习与实践,使学生掌握基本的数据结构,掌握数据结构的内在逻辑关系,在计算机中的存储表示,掌握常用的排序和查找算法,提高程序设计能力,掌握基本的算法分析方法,学会分析、解决问题的方法。
教学主要内容及学时分配
绪论(2学时)
数据结构等基本概念和术语;
算法效率的度量方法——复杂度;
栈和队列(12学时)
栈的定义、性质、基本操作;
栈的抽象数据类型与实现;
队列的定义、性质、基本操作;
队列的抽象数据类型与实现。
栈与递归的关系,递归的性质与实现
线性表和串 (2学时)
线性表的定义、性质、基本操作;
线性表的抽象数据类型与实现;
串的定义、抽象数据类型与实现。
查找 (4学时)
顺序查找算法和二分查找算法;
比较树;
排序 (8学时)
直接插入排序算法及特点;
希尔排序、选择排序、冒泡排序算法及特点;
快速排序的算法及特点;
归并排序及特点;
堆排序及特点;
基数排序及特点;
各种排序算法的复杂度分析
表与信息检索(4学时)
表(Tables)的定义、性质、存储实现;
基于表的检索;
哈希表的定义、性质、存储实现与检索;
树和二叉树 (10学时)
二叉树的定义、性质、存储实现;
二叉树的遍历算法、二叉查找树;
树和森林的二叉树表示及其转换;
树、B树、平衡二叉树。
图 (12学时)
图的定义、性质、存储实现;
图的深度优先和广度优先遍历算法;
图的拓扑排序、最短路径算法;
图的生成树、最小生成树的概念,最小生成树的算法;
图的算法复杂度分析
教学基本要求
绪论:掌握数据结构等基本概念和术语;掌握计算语句频度和估算算法时间复杂度的方法。
栈和队列
掌握栈的定义、性质、基本操作,掌握栈的抽象数据类型与实现方法,并能在在实际问题中熟练应用栈这种数据结构;
掌握队列的定义、性质、基本操作,掌握队列的抽象数据类型,掌握循环队列、链表队列的具体实现,并能在在实际问题中熟练应用队列这种数据结构;
理解栈与递归的关系,掌握递归的性质和特点;掌握分析递归程序和消除尾递归的方法;理解栈与程序调用之间的关系;
线性表和串:掌握线性表的定义和性质,掌握单链表、双链表的实现方法,理解串的定义、抽象数据类型与实现。
查找:掌握顺序查找算法和二分查找算法以及他们的特点,理解比较树;
排序
掌握直接插入排序、希尔排序、选择排序、冒泡排序算法;
掌握快速排序、归并排序的算法;
理解堆排序;
了解基数排序;
掌握各种排序算法的复杂度,理解各种排序算法特点,能够针对实际问题选择合适的排序算法。
表与信息检索
掌握各种表(Tables)的定义、性质、存储实现;
理解基于表的检索;
掌握哈希表的定义、性质、存储实现,掌握哈希函数构造方法,散列地址冲突解决方法,掌握哈希表的检索;
树和二叉树
掌握二叉树的定义、性质、存储实现;
掌握二叉树的遍历算法、理解二叉查找树定义、以及插入和删除节点的算法;
理解树和森林的二叉树表示及其转换;
理解平衡二叉树的定义、以及插入和删除节点的算法,了解B树。
图 (8学时)
掌握图的定义和基本术语、图的存储实现;
掌握深度优先和广度优先遍历图的算法及其时间复杂度;
理解图的拓扑排序方法,理解Dijkstra算法和Floyed算法的思想及其时间复杂度;了解AOE网和关键路径
理解图的生成树、最小生成树的概念,掌握最小生成树的算法及其时间复杂度;
使用教材及主要参考书
Robert L. Kruse, Alexander J. Ryba著,Data Structures and Program Design in C++,高等教育出版社,Pearson Education 出版集团,2001。
Sartaj Sahni. Data Structures, Algorithms, and Applications In C++, 机械工业出版社,McGraw-Hill. 1999。
严蔚敏,吴伟民编著,数据结构:C语言版,清华大学出版社,1996。
许卓群等编,数据结构,高等教育出版社
文档评论(0)