《数据结构》课程教学大纲(三套)
数据结构(国贸)课程《数据结构》教学大纲正稿

《数据结构》教学大纲课程名称:数据结构一、先修课程《计算机文化基础》、《C语言程序设计》二、教学目的与要求数据结构作为一门主干课程主要研究数据的各种逻辑结构和存储结构,以及对数据的各种操作。
主要有三个方面:数据的逻辑结构;数据的物理存储结构;对数据的操作(或算法)。
通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存储结构。
在基础方面,要求学生掌握常用数据结构的基本概念及其不同的实现方法;在技能方面,通过系统学习能够在不同存储结构上实现不同的运算,并对算法设计和技巧有所体会。
要求:教学中应注意加强对学生动手能力的培养,如有时间,务必安排机房授课,提供上机操作的时间。
三、教学内容教学重点难点数据结构的概念线性表树和二叉树图查找和排序1. 数据结构基本概念(2学时)(1)教学内容:①数据结构的概念(重点)②抽象数据类型(难点)③算法和算法分析(重点,难点)(2)教学要求:了解:数据结构以及算法的作用理解:数据、数据元素和数据项的概念及其相互间的关系;数据结构的逻辑结构、存储结构的联系与区别,以及在数据结构上施加的运算及其实现;抽象数据类型的概念。
掌握:算法分析的方法2.线性表(2学时)(1)教学内容①线性表逻辑结构②线性表的顺序存储及运算实现(重点)③线性表的链式存储和实现(重点,难点)(2)教学要求了解:循环链表、双(循环)链表的结构特点和在其上施加的插入、删除等操作理解:线性表的定义及其运算;顺序表和链表的定义、组织形式、结构特征和类型说明掌握:这两种表上实现的插入、删除和按值查找的算法熟练掌握:利用顺序表和链表进行算法设计3.栈和队列(4学时)(1)教学内容①栈(重点)②栈应用举例(重点,难点)③队列(重点)④队列应用举例(重点,难点)(2)教学要求理解:栈的定义、特征及在其上所定义的基本运算;队列的定义、特征及在其上所定义的基本运算掌握:两种存储结构上对栈所施加的基本运算的实现;两种存储结构上对队列所施加的基本运算的实现熟练掌握:利用栈和队列进行算法设计4.串(1学时)(1)教学内容①串及其基本运算②串的定长顺序存储及基本运算(重点)③串的堆存储结构计(2)教学要求了解:串的定义理解:串的存储方式掌握:常用的串运算熟练掌握:串的算法设5.数组、特殊矩阵和广义表(1学时)(1)教学内容①多维数组②特殊矩阵的压缩存储(重点)③稀疏矩阵(重点,难点)④广义表(难点)(2)教学要求了解:广义表的定义和基本运算理解:多维数组的结构特点和在内存中的两种顺序存储方式掌握:矩阵和特殊矩阵元素在存储区中地址的计算;稀疏矩阵的压缩方式和简单运算熟练掌握:利用数组进行算法设计6.二叉树(6学时)(1)教学基本要求了解:树的简单应用理解:二叉树的定义、性质及其存储方法;树的定义、术语掌握:二叉树的二叉链表存储方式、结点结构和类型定义;二叉树的三种遍历算法;二叉树的线索化方法;树的各种存储结构;森林与二叉树间的相互转换;树和森林的遍历熟练掌握:运用二叉树的遍历方法解决相关的应用问题(2)教学内容①定义与性质②存储实现基本操作的实现(重点)③二叉树的遍历(重点,难点)④线索二叉树(难点)⑤二叉树的应用(重点,难点)⑥树的概念与表示⑦基本操作与存储⑧树、森林与二叉树的转换⑨树或森林的遍历⑩树的应用7.图(6学时)(1)教学内容①图的基本概念②图的存储表示(重点)③图的遍历(重点)④图的连通性(难点)⑤最小生成树(重点)⑥最短路径(难点)⑦有向无环图及其应用(难点)(2)教学要求了解:图的基本概念及术语理解:最小生成树的概念,能按Prim算法构造最小生成树掌握:图的两种存储结构(邻接矩阵和邻接表)的表示方法;图的两种遍历(深度优先搜索遍历和广度优先搜索遍历)的算法思想、步骤,并能列出在两种存储结构上按上述两种遍历算法得到的序列;拓扑排序、关键路径、最短路径的算法思想。
数据结构(Python版)教学大纲 及 教案

数据结构(Python版)教学大纲及教案教学目标:1. 理解Python编程语言中数据结构的基本概念。
2. 掌握常用的数据结构如列表、元组、字典、集合及其操作方法。
3. 学会运用Python实现基本的数据结构操作,并解决实际问题。
教学内容:一、Python编程环境简介1. Python语言的特点和优势2. Python的安装和运行3. Python的基本语法二、数据结构基础1. 数据结构的概念和分类2. 线性结构:列表、元组3. 非线性结构:字典、集合三、列表和元组1. 列表的定义和特点2. 列表的基本操作:索引、切片、添加、删除、排序等3. 元组的定义和特点4. 元组的基本操作:索引、切片、添加、删除等四、字典和集合1. 字典的定义和特点2. 字典的基本操作:键值对添加、删除、修改、查找等3. 集合的定义和特点4. 集合的基本操作:添加、删除、交集、并集、差集等五、数据结构在实际问题中的应用1. 数组和链表的实现2. 栈和队列的实现3. 树和图的实现4. 排序和搜索算法的实现教学方法:1. 讲授法:讲解数据结构的基本概念、分类和操作方法。
2. 示例法:通过实际代码示例演示数据结构的应用。
3. 练习法:让学生通过编写代码练习数据结构的基本操作。
4. 讨论法:分组讨论实际问题,引导学生运用数据结构解决实际问题。
教学评价:1. 课堂参与度:观察学生在课堂上的发言和提问情况,了解学生的学习状态。
2. 代码练习:检查学生编写的代码,评估学生对数据结构操作的掌握程度。
3. 课后作业:布置相关课后作业,巩固学生对数据结构的理解和应用能力。
4. 小组项目:评估学生在小组项目中的表现,考察学生运用数据结构解决实际问题的能力。
六、数组和链表的实现1. 数组的定义和特点2. 使用Python实现数组及其操作3. 链表的定义和特点4. 使用Python实现链表及其操作七、栈和队列的实现1. 栈的定义和特点2. 使用Python实现栈及其操作3. 队列的定义和特点4. 使用Python实现队列及其操作八、树和图的实现1. 树的基本概念和类型2. 使用Python实现二叉树及其操作3. 图的基本概念和类型4. 使用Python实现图及其操作九、排序和搜索算法的实现1. 排序算法的基本概念和类型2. 使用Python实现常见排序算法(如冒泡排序、选择排序、插入排序等)3. 搜索算法的基本概念和类型4. 使用Python实现常见搜索算法(如深度优先搜索、广度优先搜索、二分搜索等)十、项目实践1. 结合实际问题,设计一个简单的数据结构应用项目2. 分组进行项目开发,引导学生运用所学知识解决实际问题3. 评估学生在项目中的表现,考察学生对数据结构知识的掌握和应用能力教学资源:1. 教案、PPT课件和教学代码示例2. Python编程环境(如PyCharm、VSCode等)3. 编程教材和在线教程4. 网络资源和相关论文教学进度安排:1. 每周安排2-3课时进行理论讲解和代码演示2. 每节课后布置相关的编程练习,巩固所学知识3. 每个章节结束后进行小组讨论和项目实践重点和难点解析一、Python编程环境简介补充说明:介绍Python的简洁明了的语法特点,如动态类型、缩进语法等;详细讲解Python的安装和运行过程;举例说明Python的基本语法规则。
数据结构课程教学大纲

课程
编号
01025016
01825064
01826064
课程
名称
(中文)数据结构
(英文)Data Structures
课
程
基
本
情
况
1.学分:4学时:40(课内学时:40实验学时:)
2.课程性质:学科基础必修课专业选修课
3.适算机原理》、《C语言程序设计》、《高等数学》
1.掌握线性表的基本概念。
2.掌握线性表的顺序存储结构和链式存储结构。
3.掌握特殊的线性表-栈和队列。
4.了解循环线性链表和双向链表。
(三)串(4学时)
1.了解串的基本概念和存储结构
2.了解串的基本运算
3.掌握串的模式匹配
(四)数组和广义表(4学时)
1.掌握数组顺序存储和链式存储结构
2.了解广义表的定义及其应用
配套
实践
环节
说明
大纲
编写
责任
人
信息与计算科学
(教研组)
戴筠(签名)
2001年06月30日
系
审核
意见
数学
(系)
顾桂定(签名)
2001年06月30日
学院
审核
意见
张金仓
(签名)
上海大学理学院(公章)
年月日
要求学生能够掌握数据的逻辑结构、物理结构以及各种结构所定义的运算和应用。对同一种逻辑结构的数据,讨论其不同的物理结构和相应的有关算法,掌握查找和排序的各种方法。
课
程
内
容
及
学
时
分
配
课
程
内
容
及
学
数据结构课程教学大纲

《数据结构》课程教学大纲课程名称:数据结构(Data Structures)课程编号:CX414120A学分:4总学时:64(48+16)适用专业:计算机科学与技术先修课程:离散数学,C语言程序设计一、课程的性质、目的与任务数据结构是计算机科学与技术专业的一门专业基础课程。
通过课堂教学、课外练习和上机实习,使学生了解数据对象的特性及数据组织的基本方法,并初步具备分析和解决现实世界问题在计算机中的表示方法和及其处理的能力,让学生培养良好的程序设计技能,为后续课程的学习和科研工作的参与打下良好的基础。
二、教学基本要求✧了解线性表、栈、队列、字符串、数组、广义表、树、二叉树、图、查找表等几种数据结构的特性及数据组织的基本方法;✧理解各数据结构上的基础操作方法及复杂度的分析方法;✧掌握各数据结构及查找、排序的基本理论和基本知识,使学生具备从数据结构的角度出发,开发设计出较复杂软件的能力。
三、教学内容第一章绪论(4学时)1.数据,数据类型,数据结构(逻辑结构和存储结构)(1学时)2.数据结构的主要运算与基础知识(1学时)3.算法复杂度分析(2学时)算法的定义、算法的描述、算法设计的要求、算法分析初步第二章线性表(4学时)1.线性表的定义和基本运算(0.5学时)2.线性表的存储结构和实现(3学时)向量(顺序)存储结构、链式存储结构(单链表、双向链表和循环链表)3.链式表的应用(多项式的表示与相加) (0.5学时)第三章栈和队列(4学时)1.栈(2学时)栈的定义和基本运算、存储结构和实现、应用举例及栈与递归过程2.队列(2学时)队列的定义和基本运算、存储结构和实现及双端队列、输入和输出受限队列第四章串(3学时)1.串的定义、运算和存储结构(0.5学时)2.串的基本运算的实现(2.5学时)串的匹配、KMP算法及NEXT函数第五章数组和广义表(3学时)1.数组的定义和运算(0.5学时)2.数组的顺序存储结构及存储地址的计算(1学时)3.矩阵(特殊矩阵、稀疏矩阵)的压缩存储(1学时)4.广义表的定义、基本运算和存储结构(0.5学时)第六章树和二叉树(8学时)1.树的定义、基本运算和存储结构(1学时)2.二叉树的定义、性质和存储结构(顺序、链式) (1.5学时)3.二叉树的遍历和线索二叉树(2学时)4.树、二叉树与森林的转换;树和森林的遍历(1.5学时)5.二叉树的应用(2学时)二叉排序树、Huffman树第七章图(8学时)1.图的定义和术语(1学时)2.图的存储结构(2学时)3.图的遍历(1学时)4.图的连通性问题(连通分量、生成树、最小生成树) (1学时)5.DAG图及其应用(2学时)拓扑排序、关键路径6.最短路径(1学时)单源最短路径、每对顶点间的最短路径第九章查找(8学时)1.概述(0.5学时)2.顺序表的查找(顺序查找、折半查找、分块查找) (2学时)3.树表的查找(3学时)二叉排序树、平衡二叉树、B_树和B+树4.哈希表(Hash) (2.5学时)基本概念、Hash函数与Hash表的构造方法、Hash表的查找和冲突处理方法第十章内部排序(6学时)1.概述(0.5学时)2.插入排序(直接插入排序、折半插入排序、2-路插入排序、Shell排序) (1.5学时)3.选择排序(直接选择排序、树型选择排序、堆排序) (1.5学时)4.交换排序(冒泡排序、快速排序) (1.5学时)5.归并排序(2-路归并排序) (0.5学时)6.基数排序(0.5学时)实验内容:(8学时)实验一、指针与结构体操作实验二、线性表及其应用实验三、栈与队列操作实验四、串及其应用实验五、数组及其应用实验六、二叉树建树与遍历实验七、图的基本操作实验八、查找与排序四、教学参考书[1]严蔚敏等,《数据结构》(第二版)清华大学出版社,1993[2]严蔚敏等,《数据结构题集》,1995[3] William Ford,William Topp,《Data Structure with C++》清华大学出版社Prentice Hall联合出版,1996五、说明实验内容具体内容及要求见实验指导书。
计算机专业《数据结构》教学大纲

计算机专业《数据结构》教学大纲一、课程基本信息课程名称:数据结构课程类别:专业基础课课程学分:X学分课程总学时:X学时适用专业:计算机专业二、课程的性质、目的和任务(一)课程性质《数据结构》是计算机专业的一门重要的专业基础课,它是介于数学、计算机硬件和计算机软件之间的一门核心课程,不仅是程序设计的基础,也是设计和实现操作系统、数据库系统、编译系统及其他系统程序和大型应用程序的重要基础。
(二)课程目的通过本课程的学习,使学生能够掌握数据结构的基本概念、基本原理和基本算法,培养学生分析问题和解决问题的能力,为后续课程的学习和今后从事软件开发工作打下坚实的基础。
(三)课程任务1、使学生掌握数据结构的基本概念和术语,包括数据、数据元素、数据对象、数据结构等。
2、使学生掌握线性表、栈、队列、串、数组、广义表、树、图等常用数据结构的逻辑结构、存储结构和基本操作的实现算法。
3、使学生掌握查找和排序的基本算法,包括顺序查找、二分查找、哈希查找、插入排序、选择排序、交换排序、归并排序等。
4、培养学生运用所学数据结构和算法知识解决实际问题的能力,能够根据具体问题选择合适的数据结构和算法,并进行算法设计和程序实现。
5、培养学生的程序设计能力和良好的编程风格,提高学生的代码可读性和可维护性。
三、课程教学内容和要求(一)绪论1、教学内容数据结构的基本概念和术语,包括数据、数据元素、数据对象、数据结构、数据类型等。
数据结构的研究内容和研究方法。
算法的基本概念和特性,包括有穷性、确定性、可行性、输入和输出。
算法的描述方法,包括自然语言描述、流程图描述、伪代码描述等。
算法的分析方法,包括时间复杂度和空间复杂度的分析。
2、教学要求理解数据结构的基本概念和术语。
了解数据结构的研究内容和研究方法。
掌握算法的基本概念和特性。
掌握算法的描述方法。
掌握算法的时间复杂度和空间复杂度的分析方法。
(二)线性表1、教学内容线性表的定义和逻辑结构。
数据结构(Python版)教学大纲 及 教案

数据结构(Python版)教学大纲及教案第一章:引言1.1 课程介绍数据结构的重要性Python在数据结构中的应用课程目标和学习内容1.2 数据结构的基本概念什么是数据结构数据的抽象和表示常见数据结构类型1.3 Python编程环境Python安装和配置Python编程基础常用数据类型和操作第二章:线性表2.1 线性表的定义和性质线性表的概念线性表的顺序存储结构线性表的链式存储结构2.2 线性表的基本操作线性表的插入和删除操作线性表的查找和排序操作线性表的常见算法实现2.3 Python中的线性表实现Python列表的使用Python元组的使用Python集合的使用第三章:栈和队列3.1 栈的定义和性质栈的概念栈的顺序存储结构栈的链式存储结构3.2 栈的基本操作栈的入栈和出栈操作栈的应用实例栈的算法实现3.3 队列的定义和性质队列的概念队列的顺序存储结构队列的链式存储结构3.4 队列的基本操作队列的入队和出队操作队列的应用实例队列的算法实现第四章:线性表的拓展4.1 双向链表双向链表的概念双向链表的存储结构双向链表的基本操作4.2 栈和队列的拓展栈的应用拓展队列的应用拓展栈和队列的其他变体4.3 Python中的拓展实现Python中的双向链表实现Python中的栈和队列实现第五章:非线性结构5.1 树的概念和性质树的基本概念树的存储结构树的遍历和操作5.2 常见的树结构二叉树binary search tree(BST)平衡树(AVL树)堆(Heap)5.3图的概念和性质图的基本概念图的存储结构图的遍历和操作5.4 Python中的非线性结构实现Python中的树结构实现Python中的图结构实现第六章:排序算法6.1 排序算法的概念与重要性排序算法的定义排序算法的作用排序算法的分类6.2 内部排序算法冒泡排序选择排序插入排序快速排序归并排序堆排序6.3 外部排序算法外部排序的概念外部排序的策略外部排序的实现6.4 Python中的排序算法实现Python内置的排序函数自定义排序函数第七章:查找算法7.1 查找算法概述查找算法的定义查找算法的作用查找算法的分类7.2 内部查找算法顺序查找二分查找分块查找7.3 哈希查找哈希查找的原理哈希函数的设计哈希冲突的解决方法7.4 Python中的查找算法实现Python内置的查找函数自定义查找函数第八章:树的高级应用8.1 平衡树(AVL树)平衡树的概念平衡树的性质平衡树的插入与删除8.2 红黑树红黑树的概念红黑树的性质红黑树的插入与删除8.3 堆(Heap)堆的概念堆的性质堆的插入与删除8.4 Python中的高级树结构实现Python中的平衡树实现Python中的红黑树实现Python中的堆实现第九章:图的算法9.1 图的算法概述图的算法的作用图的算法的分类9.2 深度优先搜索(DFS)DFS的概念DFS的实现DFS的应用9.3 广度优先搜索(BFS)BFS的概念BFS的实现BFS的应用9.4 最短路径算法迪杰斯特拉算法贝尔曼-福特算法Dijkstra算法A算法9.5 Python中的图算法实现Python内置的图库自定义图算法实现第十章:综合案例与实践10.1 数据结构在实际应用中的重要性数据结构在软件开发中的应用数据结构在数据分析中的应用数据结构在中的应用10.2 综合案例分析案例一:社交网络分析案例二:推荐系统案例三:网络爬虫10.3 实践项目项目一:实现一个简单的链表项目二:实现一个平衡二叉树项目三:实现一个图的搜索算法重点和难点解析重点环节1:线性表的基本概念和性质线性表的定义和特点线性表的顺序存储结构及其操作线性表的链式存储结构及其操作重点环节2:栈和队列的基本概念和性质栈的定义、特点和操作队列的定义、特点和操作栈和队列的典型应用场景重点环节3:线性表的拓展双向链表的结构和操作栈和队列的拓展形式Python中的实现方法和技巧重点环节4:非线性结构树的概念、分类和操作图的概念、分类和操作Python中的非线性结构实现方法重点环节5:排序算法和查找算法常见排序算法的原理和实现常见查找算法的原理和实现算法的时间复杂度和空间复杂度分析重点环节6:树的高级应用平衡树(AVL树)的概念和性质红黑树的概念和性质堆(Heap)的概念和性质Python中的高级树结构实现方法重点环节7:图的算法图的算法分类和应用场景深度优先搜索(DFS)和广度优先搜索(BFS)的原理和实现最短路径算法的原理和实现Python中的图算法实现方法重点环节8:综合案例与实践数据结构在实际应用中的重要性和作用社交网络分析、推荐系统和网络爬虫等案例的分析和实践实践项目的选题、实现方法和技巧本文主要分析了“数据结构(Python版)”教学大纲及教案中的重点环节,包括线性表、栈和队列、线性表的拓展、非线性结构、排序算法和查找算法、树的高级应用、图的算法以及综合案例与实践。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程教学大纲(三套)《数据结构》课程教学大纲(36/36 课时)一、课程的性质和任务数据结构是计算机及应用专业中一门重要的专业基础课程,在计算机软件的各个领域中均会使用到数据结构的有关知识。
当用计算机来解决实际问题时,就要涉及到数据的表示及数据的处理,而数据表示及数据处理正是数据结构课程的主要研究对象,通过这两方面内容的学习,为后续课程,特别是软件方面的课程打开厚实的基础。
因此,数据结构课程在计算机应用专业中具有举足轻重的作用。
本课程的任务是:在基础方面,要求学员掌握常用数据结构的基本概念及其不同的实现方法;在技能方面,通过系统学习能够在不同存储结构上实现不同的运算,并对算法设计的方式和技巧有所体会。
总言之,使应用者较全面的掌握各种常用的数据结构,提高运用数据结构解决实际问题的能力。
二、课程的基本要求本课程的教学基本要求如下:本课程要求理论必须与上机实践操作相结合,多做题和调试算法,实现算法。
实践项目只利用课堂时间是不够的,必须提前布置给学生。
通过本课程的学习与实践,学生应达到:1、掌握数据结构的基本概念和基本理论;2、熟练掌握顺序表、链表、队列、栈、树以及二叉树、图等基本数据结构的设计和分析;3、熟练地掌握常用算法(递归、遍历、查找、排序)的知识;4、能对所求解的问题进行分析,抽象出逻辑结构,选择合适的存储结构定义所需的运算,设计相应的算法;5、对算法进行分析和评价。
三、教学内容(一)理论教学(二)实践环节四、课时分配《数据结构》课程共4学分,课内72学时,其中理论课36学时,上机36学时。
五、大纲说明本课程必须理论与上机实践操作相结合,并要教、学、练相结合,讲清基本概念,指出知识要点、重点和难点,并通过实例分析解决算法难点;要求学生认真预习、认真听课、认真思索、认真做实验, 通过对算法的编程实现来提高学生 由于内容多、 难度大, 要特别注重精讲多练, 实践项目一定 要提前布置给学生, 调动学生的主观能动性,鼓励学生多提 问题、共同探讨和解决问题。
重点:线性表的存储和运算;栈和队列的运算;二叉树的遍历和线索,哈夫 排序树;图的生成树,最短路径;散列查找和树表查找;几种 排序算法及排序过程。
难点:链表的运算;后序遍历二叉树;线索二叉树;最短路径等六、考核方式 理论考核与实践考核相结合,理论考核(主要考基本概念、基本理论、基本 算法 , 闭卷考试) 占40%;实践考核(主要是平时布置的实践项目) 占40%;平时(出勤、作业、课堂提问等)占 20%。
七、参考教材教材:《数据结构 ( C 语言版 ) 》, 邵增珍 杨品林 编著 , 清华大学出版社, 2012 年 9 月。
参考教材 :1?《数据结构---用C 语言描述》唐策善、李龙澍、黄刘生 高等教育出版社 19952. 《数据结构 (C 语言篇 ) 习题与解析》 李春葆 清华大学出版社 2000 3?《数据结构(C 语言版)》 严蔚敏、吴伟民 清华大学出版社1997的理解和动手能力。
启发学生独立思考、 曼树及应用,二叉《数据结构A 》课程教学大纲(56/16课时)适用专业:信息计算、信息安全 总学时数: 72 编写年月:执 笔:高学军、刘科峰、李小英 课程性质:专业基础理论课 / 必修开课学期: 5总学分数: 4.45.5 修订年月:、课程的性质和目的数据结构是信息与计算科学专业的一门重要专业基础课程。
主要研究对象,通过这两方面内容的学习,为后续课程, 是软件方面的课程打下了厚实的知识基础, 同时也提供了必要的技能训练。
因此 , 数据结构课程在 信息与计算科学专业中具有举足轻重的作用。
、课程教学内容及学时分配第 1 章绪论 (4 学时) 理解数据、数据元素和数据项的概念及其相互间的关系。
理解数据结构的逻 辑结构、存储结构 的联系与区别,以及在数据结构上施加的运算及其实现。
掌握 简单的算法分析方法。
本章知识点为:数据、数据元素、数据对象、数据结构、存储结构和数据类 型等概念术语的确 定含义;抽象数据类型的定义、表示和实现方法;描述算法的类 C 语言;算法设计的基本要求以及从时间和空间角度分析算法的方法。
第 2 章 线性表 (10 学时, 2 个学时实验上机) 理解线性表的定义及其运算。
理解顺序表和链表的定义、组织形式、结构特 征和类型说明,掌握在这两种表上实现的插入、 删除和按值查找的算法。
了解循 环链表、双向 (循环 )链表的结构特点和在其上施加的插入、删除等操作。
掌握稀疏多项式在线性表的两种存储结构上的实现方法。
本章知识点为:线性表的逻辑结构定义、抽象数据类型定义和各种存储结构 的描述方法;在线 性表的两类存储结构 ( 顺序的和链式的 )上实现基本操作;稀决实际问题时,就要涉及到数据的表示及数据的处理,而数据表示及数据处理正是数据结构课程的Data Structure A课程代码 :当用计算机来解特别疏多项式的抽象数据类型定义、表示和加法的实现。
第3 章栈和队列(6学时,2 个学时实验上机)理解栈和队列的定义、特征及在其上所定义的基本运算。
掌握在两种存储结构上对栈和队列所施加的基本运算的实现。
熟练掌握循环队列和链队列的基本操作实现算法,尤其是队满和队空的描述方法。
本章知识点为:抽象数据类型栈的定义;栈的表示和实现;栈的应用;抽象数据类型队列的定义;链队列;循环队列。
第4 章串(4学时,2个学时实验上机)熟悉串的七种基本操作的定义,并能利用这些基本操作来实现串的其它各种操作的方法。
熟练掌握在串的定长顺序存储结构上实现串的各种操作的方法。
掌握串的堆存储结构以及在其上实现串操作的基本方法。
本章知识点为:串的数据类型定义;串的三种存储表示:定长顺序存储结构、块链存储结构和堆分配存储结构;串的各种基本操作的实现及其应用;第5 章数组和广义表(6学时,2个学时实验上机)了解数组的两种存储表示方法,并掌握数组在以行为主的存储结构中的地址计算方法。
掌握对特殊矩阵进行压缩存储时的下标变换公式。
了解稀疏矩阵的两种压缩存储方法的特点和适用范围,领会以三元组表示稀疏矩阵时进行矩阵运算采用的处理方法。
掌握广义表的结构特点及其存储表示方法。
本章知识点为:数组的类型定义和表示方式;特殊矩阵和稀疏矩阵的压缩存储方法及运算的实现;广义表的逻辑结构和存储结构和广义表的操作。
第6 章树和二叉树(12学时,2 个学时实验上机)深刻理解树的定义、性质及其存储方法,熟练掌握二叉树的二叉链表存储方式、结点结构和类型定义,并能画出给定二叉树的二叉链表的结构示意图;理解并掌握二叉树的三种遍历方法,并能写出该三种遍历的算法;会完成树、森林与二叉树间的相互转换;理解哈夫曼树的构造方法,并能对给定的数据集合构造出哈夫曼树。
本章知识点为:二叉树的定义、性质和存储结构;二叉树的遍历和线索化以及遍历算法的各种描述形式;树和森林的定义、存储结构、与二叉树的转换、遍历;树的多种应用。
第7 章图(12学时,2 个学时实验上机)理解图的基本概念及术语,掌握图的两种存储结构(邻接矩阵和邻接表)的表示方法;熟练掌握图的两种遍历(深度优先搜索遍历和广度优先搜索遍历)的算法思想、步骤,并能列出在两种存储结构上按上述两种遍历算法得到的序列;理解最小生成树的概念,能按Prim 算法构造最小生成树;了解并掌握拓扑排序、关键路径、最短路径的算法思想。
本章知识点为:图的定义和术语;图的四种存储结构:数组表示法、邻接表、十字链表和邻接多重表;图的两种遍历策略:深度优先搜索和广度优先搜索;图的连通性:连通分量和最小生成树;拓扑排序和关键路径;两类求最短路径问题的解法。
第8 章查找(10 学时,2 个学时实验上机)了解查找的基本思想及查找成功和不成功的概念,掌握在顺序表、有序表、索引表、散列表等上的查找方法和算法,并能求出相应的平均查找长度。
本章知识点为:讨论查找表(包括静态查找表和动态查找表)的各种实现方法:顺序表、有序表、树表和哈希表;平均查找长度的讨论。
第9 章内部排序(8 学时,2 个学时实验上机)了解排序的基本思想和基本概念,理解和掌握插入排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序和基数排序的基本思想、步骤及算法。
本章知识点为:讨论比较各种内部排序方法,插入排序、交换排序、选择排序、归并排序和基数排序的基本思想、算法特点、排序过程以及它们的时间复杂度分析。
在每类排序方法中,又从简单方法入手,重点讨论性能先进的高效方法。
、课程教学的基本要求本课程是信息与计算科学专业的重要专业基础课,件都要用到各种数据结构。
在教学方法上采用课堂讲授,课后自计算机科学各领域及有关的系统和应用软学,课堂讨论等教学形式。
一)课堂讲授本课程属于基础理论课程。
在传授知识原理的前提下,配合实际应用例子,由浅入深善于诱导,使学生从被动吸收知识的状态下,转化到主动索取知识的状态中来,并采用多媒体辅助教学,加大课堂授课的知识含量。
注重培养学生的学习兴趣,提咼学生的基本素质。
(二)课后自学为了培养学生整理归纳,综合分析和处理问题的能力,每章都安排一部分内容,课上教师只给出自学提纲,不作详细讲解,课后学生自学。
)课堂讨论课堂讨论的目的是活跃学习气氛,开拓思路。
教师应认真组织,安排重点发言,充分调动每一名同学的学习积极性,做好总结。
(四)课外作业为了让学生巩固所学的知识,每章都布置一定数量课外作业。
(五)实验用C语言或C++吾言完成一些算法设计题。
培养学生的算法设计能力和程序设计能力。
先修课程:离散数学,C++面向对象程序设计等。
后续课程:操作系统,数据库原理等。
五、建议教材与教学参考书[1] 严蔚敏吴伟民编著,数据结构(C语言版),北京:清华大学出版社,2004[2] 严蔚敏吴伟民编著,数据结构题集(C语言版),北京:清华大学出社,2004[3] Willan Ford,Willian Topp. Data Structures with C++. New Jersey:Prentice HallInc, Adivisi on Sim on & Schuster Compa ny ,1996 (数据结构C++语言描述.北京:清华大学出版社,1997)[4] 徐孝凯,数据结构实用教程(C/C++描述),北京:清华大学出版社,1999[5] 陈慧南.数据结构(使用C++吾言描述),南京:东南大学出版社,2001[6] 殷人昆,陶永雷,谢若阳等.数据结构(用面向对象方法与C++描述),北京:清华大学出版社,1999数据结构》课程教学大纲(36/18 课时)课程编号:课程名称:数据结构英文名称:Data Structure 课程类型:专业必修课总学时:54 理论学时:36 实验学时:18 适用对象:课程简介:数据结构主要研究数据的各种逻辑结构和存储结构,以及对数据的各种操作。