数据结构与算法A实验班数椐结构与篁法Δ数据结构与算沬B数掴结构与篁法实习 “数据结构与算法”教学大纲 美国IEE和ACM的教学计划C2005和教育部计算机教指委“计算机科学与技术专业规范”2006都明确地 把“程序设计” 算法与数据结构”列入计算机以及信息技术相关学科专业的本科必修基础课程。教育部计算机 专业教指委“中国计算机本科专业发展战略硏究报告”、“计算机科学与技术专业规范”等明确地强调了实践教学 和学生动手能力培养的重要性。数据结构是计算机系的本科核心课程之一,上承计算引论(或计算概论)与程序设 计实习,下启高级算法和计算理论,向来是计算机本科教学的重中之重 作为一门重要的专业必修课程,“数据结构与算法”课程既是对以往课程的深入和扩展,也是为将来更加深入 地学习其他专业课程打下基础。课程中所学习的排序问题的算法,以及基本的树、图等数据结构,是计算机科学的 基本功。B树、Hash等高级数据结构,也是数据库、操作系统、编译原理、计算机网络等后续课程的基础。 数据结构与算法”介绍基本数据结构、基本算法分析技术、排序、检索和索引技术。对常用的基本数据结 构,讨论相应的存储实现技术和经典算法,并通过算法时间空间的效率分析,介绍时空权衡的原则。对常用的各种 经典排序算法深入讨论其时间和空间开销。介绍文件管理和外排序技术,以及常见的检索和索引技术。通过该课程 的学习,学生将基本掌握数据结构和算法的设计分析技术,提高程序设计的质量;根据所求解问题的性质选择合理 的数据结构并对时间空间复杂性进行必要的控制 数据结构与算法A(实验班)(返回顶部) 1.课程基本情况 果程104830540 果程[数据结构与算法A(实验班) 语言原理二 名称 Data Structure And Algorithm A 算法分析 数据结构与 年级级 年级 与计 算法实习 区春 数结构算 法A(实验班 适用信息学院全体学生 院[院系 程序设计(焦合论 设课程骨干基础课,必修课 定定位 概苯统计A 与图 学分3学分 计其概论A 总学|54学时 十算引论,程序设计实习,集 数学分析 等代数 高等数 /线性代 后续数据结构与算法实习,程序设计语言 课程原理 本课程是“数据结构与算法A”替代课程,针对基础比较好、学习能力突出、学有 余力的实验班学生设置。课程将加大“数据结构与算法A”的深度和广度,提供更多的研 设 究和讨论机会,因材施教、培养领袖人才 以课堂讲授为主,同时借助网络教学平台,拓展课堂讲授的相关知识,便于同学自 方式主学习、巩固课堂所学内容。另外,组织3次以上的独立习题课(6小时),针对学生作 业中出现年的典型问题进行深入探讨 鉴于数据结构与算法是与实践紧密结合的课程,配合理论教学,将加强上机实习的 训练,通过合理、有效地设计上机题目,改进作业评核方式,调动学生的积极性,启发 引导学生掌握基础理论并能创新应用,增强学生综合运用有关知识的能力 时3(课堂教学)+1(教学实验)/周 平时(书面作业、课堂测试)20%,上机(+报告)15%,期中20%,期末20%,高级数 据结构20%,考勤和态度5%。 期中、期末考试,全学院的“数据结构与算法A”和“数据结构与算法A(实验 方式班)”统一出题、统一阅卷。平时作业和上机作业由各班根据专业要求灵活掌握,教员 协调给出成绩 注重综合能力的考评,平时表现突出、上机实践能力较强的可以得到奖励加分 主要 1张铭、王腾蛟、赵海燕,《数据结构与算法》,高等教育岀版社,2008年6月
数据结构与算法A实验班 数据结构与算法A 数据结构与算法B 数据结构与算法实习 “数据结构与算法”教学大纲 美国IEEE和ACM的教学计划CC2005和教育部计算机教指委 “计算机科学与技术专业规范”2006都明确地 把“程序设计”、“算法与数据结构”列入计算机以及信息技术相关学科专业的本科必修基础课程。教育部计算机 专业教指委“中国计算机本科专业发展战略研究报告”、“计算机科学与技术专业规范”等明确地强调了实践教学 和学生动手能力培养的重要性。数据结构是计算机系的本科核心课程之一,上承计算引论(或计算概论)与程序设 计实习,下启高级算法和计算理论,向来是计算机本科教学的重中之重。 作为一门重要的专业必修课程,“数据结构与算法”课程既是对以往课程的深入和扩展,也是为将来更加深入 地学习其他专业课程打下基础。课程中所学习的排序问题的算法,以及基本的树、图等数据结构,是计算机科学的 基本功。B+树、Hash等高级数据结构,也是数据库、操作系统、编译原理、计算机网络等后续课程的基础。 “数据结构与算法”介绍基本数据结构、基本算法分析技术、排序、检索和索引技术。对常用的基本数据结 构,讨论相应的存储实现技术和经典算法,并通过算法时间空间的效率分析,介绍时空权衡的原则。对常用的各种 经典排序算法深入讨论其时间和空间开销。介绍文件管理和外排序技术,以及常见的检索和索引技术。通过该课程 的学习,学生将基本掌握数据结构和算法的设计分析技术,提高程序设计的质量;根据所求解问题的性质选择合理 的数据结构并对时间空间复杂性进行必要的控制。 一、数据结构与算法A(实验班)(返回顶部 ) 1.课程基本情况 学 院 设 定 课 程 编号 04830540 课 程 名称 数据结构与算法A(实验班) Data Structure And Algorithm A 开 课 时间 一年级 二 年 级 三年级 四 年 级 秋 春 夏 秋 春 夏 秋 春 夏 秋 春 夏 适 用 院系 信息学院全体学生 课 程 定位 骨干基础课,必修课 学分 3学分 总 学 时 54学时 先 修 课程 计算引论,程序设计实习,集合论与 图论, 概率统计A 后 续 课程 数据结构与算法实习,程序设计语言 原理 教 师 设 定 教学 方式 本课程是“数据结构与算法A”替代课程,针对基础比较好、学习能力突出、学有 余力的实验班学生设置。课程将加大“数据结构与算法A”的深度和广度,提供更多的研 究和讨论机会,因材施教、培养领袖人才。 以课堂讲授为主,同时借助网络教学平台,拓展课堂讲授的相关知识,便于同学自 主学习、巩固课堂所学内容。另外,组织3次以上的独立习题课(6小时),针对学生作 业中出现年的典型问题进行深入探讨。 鉴于数据结构与算法是与实践紧密结合的课程,配合理论教学,将加强上机实习的 训练,通过合理、有效地设计上机题目,改进作业评核方式,调动学生的积极性,启发 引导学生掌握基础理论并能创新应用,增强学生综合运用有关知识的能力。 课时 分配 3(课堂教学)+1(教学实验)/周 考核 方式 平时(书面作业、课堂测试)20%,上机(+报告)15%,期中20%,期末20%,高级数 据结构20%,考勤和态度5%。 期中、期末考试,全学院的“数据结构与算法A”和“数据结构与算法A(实验 班)”统一出题、统一阅卷。平时作业和上机作业由各班根据专业要求灵活掌握,教员 协调给出成绩。 注重综合能力的考评,平时表现突出、上机实践能力较强的可以得到奖励加分。 主要 教材 1. 张铭、王腾蛟、赵海燕,《数据结构与算法》,高等教育出版社,2008年6月
1.许卓群、杨冬青、唐世渭、张铭,《数据结构与算法》,高等教育出版社,2004 年7月 2.张铭、赵海燕、王腾蛟,《数据结构与算法习题指导》,高等教育岀版社,2005 年8月 3. Thomas h cormen charles eleiserson ronald l rivest clifford stein Inroduction to Algorithms, MIT Press, 2nd edition,2001.高等教育出版社影印, 2.教学目的和要求 1)掌握并巩固基础数据结构知识:线性表、树、图等常用的数据结构和算法的设计分析技术;常用的排 序、检索算法及其时间空间开销:对算法复杂性进行必要分析和控制 2)理解编译栈的工作原理,熟习用栈消除递归的算法框架,并解决相关应用问题。 3)初步掌握稀疏矩阵、广义表等高级线性结构技术,了解Trie结构、AVL树等高级树形结构。 4)对抽象数据类型有深入的理解,能根据所求解问题的性质选择合理的数据结构,设计并完成处理海量 数据的复杂应用系统 3.课程特色 “数据结构与算法”是一门重要的计算机类骨干基础课程。其主要目的是使学生较全面地理解数据结构的概 ˆ、掌握各种数据结构与算法的实现方式,比较不同数据结枃和算法的特点。通过学习,使学生能够提高用计算 机解决实际问题的能力。 本课程针对实验班的学生,将以问题求解为主线,从问题抽象、数据抽象和算法抽象的角度来组织数据结构 与算法的设计,指导学生建立数学模型、使用不同的数据结构不同的算法分别去解决问题,最后去探讨各种数据 结构和算法的优缺点,同时让学生学会怎么样根据实际问题来取舍数据结构和算法,并且在时间复杂度和空间复 杂度之间进行平 在讲授过程中,将调动学生的积极性,采取研究式的学习方法。有些较基础的内容采用学生综述、答辩、小 测验的形式,培养学生的自学能力。引导学生跟踪数据结构与算法的前沿应用技术,引入研读论文并作报告的讨 论班形式,培养学生的捕捉新理论、新技术的科研能力。 最后的合作大实习题由学生自己提出,并组织团队完成。由助教引导讨论,从需求分析、模块设计、编程实 践、调试测试各个阶段进行引导,加强学生们综合应用数据结构和算法知识的能力 本课程将通过设置的课程网站提供课堂讲义和最新的参考材料。 4.课程内容摘要和知识点 容摘要和知识点 数据结构定义(逻辑结构、存储结构、运 难度 数据结构和算法简 算法及其算法度量和评价(大O表示法及其|重要性 算规则) 线性表(向量、链表) 戋性表、栈和队列 8 栈和队列(顺序、链接)、栈的应用 根据专业选讲递归到非递归的转换机制和方|重要性 ★★★★ 字符串抽象数据类型,存储表示和类定义 3字符串 字符串的运算 字符串的模式匹配 要性 ★★★ 二叉树的概念及性质,二叉树的抽象数据类 叉树的周游 4二叉树 10 叉检索树、堆与优先队列、fmn编码/会■ 二叉树的存储实现 树 ★★★★★ 非递归深度优先周游二叉树和穿线二叉树 树的概念,森林与二叉树的等价转换,树的|难度 5树与森林 抽象数据类型 树的周游 重要性 的链式存储,树的顺序存储 ★★★★ 图的基本概念,图的抽象数据类型,图的存难度 储结构 图的周游(深度优先、搜索、广度优先、拓重要性 扑排序) ★★★★★
参考 资料 1. 许卓群、杨冬青、唐世渭、张铭,《数据结构与算法》,高等教育出版社,2004 年7月。 2. 张铭、赵海燕、王腾蛟,《数据结构与算法习题指导》,高等教育出版社,2005 年8月。 3. Thomas H.Cormen, Charles E.Leiserson, Ronald L. Rivest, Clifford Stein, Inroduction to Algorithms, MIT Press, 2nd edition, 2001. 高等教育出版社影印。 其它信息 2.教学目的和要求 1)掌握并巩固基础数据结构知识:线性表、树、图等常用的数据结构和算法的设计分析技术;常用的排 序、检索算法及其时间空间开销;对算法复杂性进行必要分析和控制。 2)理解编译栈的工作原理,熟习用栈消除递归的算法框架,并解决相关应用问题。 3)初步掌握稀疏矩阵、广义表等高级线性结构技术,了解Trie结构、AVL树等高级树形结构。 4)对抽象数据类型有深入的理解,能根据所求解问题的性质选择合理的数据结构,设计并完成处理海量 数据的复杂应用系统。 3.课程特色 “数据结构与算法”是一门重要的计算机类骨干基础课程。其主要目的是使学生较全面地理解数据结构的概 念、掌握各种数据结构与算法的实现方式,比较不同数据结构和算法的特点。通过学习,使学生能够提高用计算 机解决实际问题的能力。 本课程针对实验班的学生,将以问题求解为主线,从问题抽象、数据抽象和算法抽象的角度来组织数据结构 与算法的设计,指导学生建立数学模型、使用不同的数据结构不同的算法分别去解决问题,最后去探讨各种数据 结构和算法的优缺点,同时让学生学会怎么样根据实际问题来取舍数据结构和算法,并且在时间复杂度和空间复 杂度之间进行平衡。 在讲授过程中,将调动学生的积极性,采取研究式的学习方法。有些较基础的内容采用学生综述、答辩、小 测验的形式,培养学生的自学能力。引导学生跟踪数据结构与算法的前沿应用技术,引入研读论文并作报告的讨 论班形式,培养学生的捕捉新理论、新技术的科研能力。 最后的合作大实习题由学生自己提出,并组织团队完成。由助教引导讨论,从需求分析、模块设计、编程实 践、调试测试各个阶段进行引导,加强学生们综合应用数据结构和算法知识的能力。 本课程将通过设置的课程网站提供课堂讲义和最新的参考材料。 4 .课程内容摘要和知识点 章节 课时 内容摘要和知识点 重要性 1 数据结构和算法简 介 2 数据结构定义(逻辑结构、存储结构、运 算) 抽象数据类型 算法及其算法度量和评价(大O表示法及其 运算规则) 难度 ▃▄▅ 重要性 ★★★★★ 2 线性表、栈和队列 8 线性表(向量、链表) 栈和队列(顺序、链接)、栈的应用 根据专业选讲递归到非递归的转换机制和方 法 难度 ▃▄▅▆ 重要性 ★★★★ 3 字符串 4 字符串抽象数据类型,存储表示和类定义 字符串的运算 字符串的模式匹配 难度 ▃▄▅▆▇ 重要性 ★★★ 4 二叉树 10 二叉树的概念及性质,二叉树的抽象数据类 型 二叉树的周游 二叉树的存储实现 二叉检索树、堆与优先队列、Huffman编码 树 ★非递归深度优先周游二叉树和穿线二叉树 难度 ▃▄▅▆▇ 重要性 ★★★★★ 5 树与森林 4 树的概念,森林与二叉树的等价转换,树的 抽象数据类型 树的周游 树的链式存储,树的顺序存储 难度 ▃▄▅▆ 重要性 ★★★★ 6 图 8 图的基本概念,图的抽象数据类型,图的存 储结构 图的周游(深度优先、搜索、广度优先、拓 扑排序) 难度 ▃▄▅▆ 重要性 ★★★★★
最短路径问题,最小支撑树(Prim算法 Kruskal算法) 向题的基本概念,三种简单排序 (插入排序、冒泡排序、选择排序) 难度 7|内排序 Shel排序,快速排序,归并排序,堆排一■■ 序,基数排序 重要性 ★各种排序算法的理论和实验时间代价的讨★★★★★ 论以及排序问题的下限的研究 外排序的特点 8文件管理和外排序2 路外排序 置换选择排序 重要性 ★★★ 检索的基本概念 9检索 基于线性表的检索 基于集合的检索 重要性 散列方法 ★★★★ 倒排索引 10索引技术 2 B+树等动态索引组织 ★红黑树 重要性 ★★★ 广义表 11高级数据结构 字符树 ★AⅥL树 重要性 ★伸展树 二、数据结构与算法A(返回顶部) 1)课程基本情况 程序设计 课程[数据结构与算法 名称 Data Structure And Algorithm A 算法分析 语言原理)/数据结构与 算法实习 开课一年级 三年级 与设计 时间 数据结构 与算法A 学适用信息学院全体学生 院[院系 程序设计 设「课程骨干基础课,必修课 实习 定定位 概率统计A 与图论 计算概论A 总学54学时 先修四引论,程序设计实习,集合论与 数学分析 高等代数 课程概率统计A /高等数学 /线性代数 后续数据结构与算法实习,程序设计语言 以课堂讲授为主,同时借助网络教学平台,拓展课堂讲授的相关知识,便于同学自 内容。另外,组织3次以上的独立习题课(6小时),针对学生作 教学业中出现年的典型问题进行深入探讨 方式 鉴于数据结构与算法是与实践紧密结合的课程,配合理论教学,将加强上机实习的 训练,通过合理、有效地设计上机题目,改进作业评核方式,调动学生的积极性,启发 引导学生掌握基础理论并能创新应用,增强学生综合运用有关知识的能力 课时3(课堂教学)+1(教学实验)/周 时(书面作业、课堂测试)20%,上机(+报告)15%,期中20%,期末40%,考勤和 设)方式态度5% 注重综合能力的考评,平时表现突出、上机实践能力较强的可以得到奖励加分。 定「主要 张铭、王腾 《数据 育出版社,2008年6月。 致材 2.许卓群、杨冬青、唐世渭、张铭,《数据结构与算法》,高等教育岀版社,2004年 3.张铭、赵海燕、王腾蛟,《数据结构与算法习题指导》,高等教育出版社,2005年8 月 4. Thomas H Cormen, Charles E Leiserson, Ronald L. Rivest, Clifford Stein, Inroduction to Algorithms, MIT Press,2 nd edition,2001.高等教育出版社
最短路径问题,最小支撑树(Prim算法、 Kruskal算法) 7 内排序 8 排序问题的基本概念,三种简单排序算法 (插入排序、冒泡排序、选择排序) Shell排序,快速排序,归并排序,堆排 序,基数排序 ★各种排序算法的理论和实验时间代价的讨 论以及排序问题的下限的研究 难度 ▃▄▅▆▇ 重要性 ★★★★★ 8 文件管理和外排序 2 外排序的特点 二路外排序 置换选择排序 难度 ▃▄▅▆ 重要性 ★★★ 9 检索 4 检索的基本概念 基于线性表的检索 基于集合的检索 散列方法 难度 ▃▄▅▆ 重要性 ★★★★ 10 索引技术 2 倒排索引 B+树等动态索引组织 ★红黑树 难度 ▃▄▅▆ 重要性 ★★★ 11 高级数据结构 2 广义表 字符树 ★AVL树 ★伸展树 难度 ▃▄▅▆▇ 重要性 ★★★ 二、数据结构与算法A(返回顶部) 1)课程基本情况 学 院 设 定 课 程 编号 04830050 课 程 名称 数据结构与算法 Data Structure And Algorithm A 开 课 时间 一年级 二 年 级 三年级 四 年 级 秋 春 夏 秋 春 夏 秋 春 夏 秋 春 夏 适 用 院系 信息学院全体学生 课 程 定位 骨干基础课,必修课 学分 3学分 总 学 时 54学时 先 修 课程 计算引论,程序设计实习,集合论与 图论, 概率统计A 后 续 课程 数据结构与算法实习,程序设计语言 原理 教 师 设 定 教学 方式 以课堂讲授为主,同时借助网络教学平台,拓展课堂讲授的相关知识,便于同学自 主学习、巩固课堂所学内容。另外,组织3次以上的独立习题课(6小时),针对学生作 业中出现年的典型问题进行深入探讨。 鉴于数据结构与算法是与实践紧密结合的课程,配合理论教学,将加强上机实习的 训练,通过合理、有效地设计上机题目,改进作业评核方式,调动学生的积极性,启发 引导学生掌握基础理论并能创新应用,增强学生综合运用有关知识的能力。 课时 分配 3(课堂教学)+1(教学实验)/周 考核 方式 平时(书面作业、课堂测试)20%,上机(+报告)15%,期中20%,期末40%,考勤和 态度5%。 注重综合能力的考评,平时表现突出、上机实践能力较强的可以得到奖励加分。 主要 教材 1. 张铭、王腾蛟、赵海燕,《数据结构与算法》,高等教育出版社,2008年6月。 参考 资料 2. 许卓群、杨冬青、唐世渭、张铭,《数据结构与算法》,高等教育出版社,2004年7 月。 3. 张铭、赵海燕、王腾蛟,《数据结构与算法习题指导》,高等教育出版社,2005年8 月。 4. Thomas H.Cormen, Charles E.Leiserson, Ronald L. Rivest, Clifford Stein, Inroduction to Algorithms, MIT Press, 2nd edition, 2001. 高等教育出版社 影印
2)教学目的和要求 1.介绍基本数据结构和基本算法分析技术。这一部分将介绍常用基本数据结构的ADT及其应用,包括线 性结构(线性表、串、栈和队列)、二叉树、树、图等;同时基于各种数据结构所实施的运算讨论算法分 析的基本技术,掌握时间和空间权衡的原则。 2.介绍排序、检索和索引技术。这一部分将主要讨论插入排序、She11排序、堆排序、快速排序、归并排 序、基数排序等常用的各种排序算法及其时间和空间开销,并介绍文件管理(数据在外存中的组织形式) 和外排序技术,以及自组织线性表、散列表、倒排文件、B树等常见的检索和索引技术,及其各自相应的 时间和空间开销 3.理解编译栈的工作原理,熟习用栈消除递归的算法框架,并解决相关应用问题:初步掌握稀疏矩阵 广义表等高级线性结构技术,了解Trie结构、AVL树等高级树形结构 4.对抽象数据类型有深入的理解,能根据所求解问题的性质选择合理的数据结构,设计并完成处理海量 数据的复杂应用系统。 5.通过本课程的学习,学生将基本掌握数据结构和算法的设计分析技术,提高程序设计的质量:根据所求解问题 的性质选择合理的数据结构并对时间空间复杂性进行必要的控制 3)课程特色 “数据结构与算法”是一门重要的计算机类骨干基础课程。其主要目的是使学生较全面地理解数据结构的概 念、掌握各种数据结构与算法的实现方式,比较不冋同数据结构和算法的特点。通过学习,使学生能够提高用计算 机解决实际问题的能力 本课程将以问题求解为主线,从问题抽象、数据抽象和算法抽象的角度来组织数据结构与算法的设计,指导 学生建立数学模型、使用不同的数据结构不同的算法分别去解决问题,最后去探讨各种数据结构和算法的优缺 点,同时让学生学会怎么样根据实际问题来取舍数据结构和算法,并且在时间复杂度和空间复杂度之间进行平 在讲授过程中,将调动学生的积极性,采取研究式的学习方法。有些较基础的内容采用学生综述、答辩、小 测验的形式,培养学生的自学能力。引导学生跟踪数据结构与算法的前沿应用技术,引入研读论文并作报告的讨 论班形式,培养学生的捕捉新理论、新技术的科研能力。 最后的合作大实习题由教师指导学生自己提出,并组织团队完成。由助教引导讨论,从需求分析、模块设 计、编程实践、调试测试各个阶段进行引导,加强学生们综合应用数据结构和算法知识的能力。 课程通过设置的课程网站提供课堂讲义和最新的参考材料 4)课程内容摘要和知识点 内容摘要和知识 数据结构定义(逻辑结构、存储结构、运 数据结构和算法简 介 抽象数据类型 算法及其算法度量和评价(大O表示法及其 重要性 算规则) ★★★★★ 戈性表、栈和队列 线性表(向量、链表) 重要性 ★★★★ 3|线性表、栈和队列 栈和队列(顺序、链接)、栈的应用 ★选讲递归到非递归的转换机制和方法 重要性 字符串抽象数据类型,存储表示和类定义 4字符串 字符串的运算 字符串的模式匹配 重要性 ★★★ 叉树的概念及性质,二叉树的抽象数据类 叉树的周游 5二叉树 二叉树的存储实现 二叉检索树、堆与优先队列、 Huffman编码|重要性 ★★★★★ ★选讲非递归深度优先周游二叉树和穿线二叉 树的概念,森林与二叉树的等价转换,树的|难度 6树与森林 抽象数据类型 树的周游 重要性 的链式存储,树的顺序存储 ★★★★ 的基本概念,图 数据
其它信息 2)教学目的和要求 1. 介绍基本数据结构和基本算法分析技术。这一部分将介绍常用基本数据结构的ADT及其应用,包括线 性结构(线性表、串、栈和队列)、二叉树、树、图等;同时基于各种数据结构所实施的运算讨论算法分 析的基本技术,掌握时间和空间权衡的原则。 2. 介绍排序、检索和索引技术。这一部分将主要讨论插入排序、Shell排序、堆排序、快速排序、归并排 序、基数排序等常用的各种排序算法及其时间和空间开销,并介绍文件管理(数据在外存中的组织形式) 和外排序技术,以及自组织线性表、散列表、倒排文件、B树等常见的检索和索引技术,及其各自相应的 时间和空间开销。 3. 理解编译栈的工作原理,熟习用栈消除递归的算法框架,并解决相关应用问题;初步掌握稀疏矩阵、 广义表等高级线性结构技术,了解Trie结构、AVL树等高级树形结构。 4. 对抽象数据类型有深入的理解,能根据所求解问题的性质选择合理的数据结构,设计并完成处理海量 数据的复杂应用系统。 5. 通过本课程的学习,学生将基本掌握数据结构和算法的设计分析技术,提高程序设计的质量;根据所求解问题 的性质选择合理的数据结构并对时间空间复杂性进行必要的控制。 3)课程特色 “数据结构与算法”是一门重要的计算机类骨干基础课程。其主要目的是使学生较全面地理解数据结构的概 念、掌握各种数据结构与算法的实现方式,比较不同数据结构和算法的特点。通过学习,使学生能够提高用计算 机解决实际问题的能力。 本课程将以问题求解为主线,从问题抽象、数据抽象和算法抽象的角度来组织数据结构与算法的设计,指导 学生建立数学模型、使用不同的数据结构不同的算法分别去解决问题,最后去探讨各种数据结构和算法的优缺 点,同时让学生学会怎么样根据实际问题来取舍数据结构和算法,并且在时间复杂度和空间复杂度之间进行平 衡。 在讲授过程中,将调动学生的积极性,采取研究式的学习方法。有些较基础的内容采用学生综述、答辩、小 测验的形式,培养学生的自学能力。引导学生跟踪数据结构与算法的前沿应用技术,引入研读论文并作报告的讨 论班形式,培养学生的捕捉新理论、新技术的科研能力。 最后的合作大实习题由教师指导学生自己提出,并组织团队完成。由助教引导讨论,从需求分析、模块设 计、编程实践、调试测试各个阶段进行引导,加强学生们综合应用数据结构和算法知识的能力。 课程通过设置的课程网站提供课堂讲义和最新的参考材料。 4)课程内容摘要和知识点 章节 课时 内容摘要和知识点 重要性 1 数据结构和算法简 介 2 数据结构定义(逻辑结构、存储结构、运 算) 抽象数据类型 算法及其算法度量和评价(大O表示法及其 运算规则) 难度 ▃▄▅ 重要性 ★★★★★ 2 线性表、栈和队列 2 线性表(向量、链表) 难度 ▃▄▅ 重要性 ★★★★ 3 线性表、栈和队列 6 栈和队列(顺序、链接)、栈的应用 ★ 选讲递归到非递归的转换机制和方法 难度 ▃▄▅▆ 重要性 ★★★★ 4 字符串 4 字符串抽象数据类型,存储表示和类定义 字符串的运算 字符串的模式匹配 难度 ▃▄▅▆▇ 重要性 ★★★ 5 二叉树 10 二叉树的概念及性质,二叉树的抽象数据类 型 二叉树的周游 二叉树的存储实现 二叉检索树、堆与优先队列、Huffman编码 树 ★ 选讲非递归深度优先周游二叉树和穿线二叉 树 难度 ▃▄▅▆▇ 重要性 ★★★★★ 6 树与森林 4 树的概念,森林与二叉树的等价转换,树的 抽象数据类型 树的周游 树的链式存储,树的顺序存储 难度 ▃▄▅▆ 重要性 ★★★★ 7 图 8 图的基本概念,图的抽象数据类型,图的存 难度
储结构 图的周游(深度优先、搜索、广度优先、拓|重要性 扑排序) ★★★★★ 最短路径问题,最小支撑树(Prim算法 Kruskal算法 排序问题的基本概念,三种简单排序算法 (插入排序、冒泡排序、选择排序) 内排序 Shell排序,快速排序,归并排序,堆排 序,基数排序 重要性 ★选讲各种排序算法的理论和实验时间代价的★★★★★ 讨论以及排序问题的下限的研究 外排序的特点 主度 9文件管理和外排 二路外排序 ★选讲置换选择排序、多路归并选择树 难重★难 10检索 基于线性表的检索 基于集合的检索 重要性 散列方法 ★★★★ 倒排索引 11索引技术 B+树等动态索引组织 ★选讲红黑树 重要性 2高级数据结构 字符树 ★选讲AⅥL树 重要性 ★选讲伸展树 ★★★ 三、数据结构与算法B(返回顶部) )课程基本情况 编号 名称 Data Structure And Algorithm B 算法分析 数据结构与 课一年级三年级 与设计 算法实习 时间秋春伙春夏秋春厦秋春厦 数据结构 与算法B 适用信息学院编程能力不太强的学生 学 系 院 程序设计 课程骨干基础课,必修课 实习 定 学分β学分 计算概论A 学4学时 数学分析 高等代数 先修计算引论,程序设计实习 /高等数学 /线性代数 课程 后续数据结构与算法实习,程序设计语 课程谅原理 教以课堂讲授为主,同时借助网络教学平台,拓展课堂讲授的相关知识,便于同 师教学自主学习巩固课堂所学内容 设方式烤虑到选修B类课程的学生编程能力较弱,会安排助教加强对学生上机实习的辅 课时3(课堂教学)1(教学实验)倜 分配 平时(书面作业、课堂测试)20%,上机(+报告)15%,期中20%,期末40%考勤 和态度5% 考核期中考试、期末考试与学院的《数据结构与算法A》和《数据结构与算法A(实验 方式班)》有60%的基础内容统一出题、统一阅卷,另外40%独立命题。平时作业和上 机作业由各班根据专业要求灵活掌握,教员协调给出成绩 重综合能力的考评,平时表现突出、上机实践能力较强的可以得到奖励加分 主要.张铭、王腾蛟、赵海燕,《数据结构与算法》,高等教育出版社,2008年6月
储结构 图的周游(深度优先、搜索、广度优先、拓 扑排序) 最短路径问题,最小支撑树(Prim算法、 Kruskal算法) ▃▄▅▆ 重要性 ★★★★★ 8 内排序 8 排序问题的基本概念,三种简单排序算法 (插入排序、冒泡排序、选择排序) Shell排序,快速排序,归并排序,堆排 序,基数排序 ★ 选讲各种排序算法的理论和实验时间代价的 讨论以及排序问题的下限的研究 难度 ▃▄▅▆▇ 重要性 ★★★★★ 9 文件管理和外排序 2 外排序的特点 二路外排序 ★ 选讲置换选择排序、多路归并选择树 难度 ▃▄▅▆ 重要性 ★★★ 10 检索 4 检索的基本概念 基于线性表的检索 基于集合的检索 散列方法 难度 ▃▄▅▆ 重要性 ★★★★ 11 索引技术 2 倒排索引 B+树等动态索引组织 ★ 选讲红黑树 难度 ▃▄▅▆ 重要性 ★★★ 12 高级数据结构 2 广义表 字符树 ★ 选讲AVL树 ★ 选讲伸展树 难度 ▃▄▅▆▇ 重要性 ★★★ 三、数据结构与算法B(返回顶部) 1)课程基本情况 学 院 设 定 课 程 编号 课 程 名称 数据结构与算法B Data Structure And Algorithm B 开 课 时间 一年级 二年级 三年级 四年级 秋 春 夏 秋 春 夏 秋 春 夏 秋 春 夏 适 用 院系 信息学院编程能力不太强的学生 课 程 定位 骨干基础课,必修课 学分 3学分 总 学 时 54学时 先 修 课程 计算引论,程序设计实习 后 续 课程 数据结构与算法实习,程序设计语言 原理 教 师 设 定 教学 方式 以课堂讲授为主,同时借助网络教学平台,拓展课堂讲授的相关知识,便于同学 自主学习、巩固课堂所学内容。 考虑到选修B类课程的学生编程能力较弱,会安排助教加强对学生上机实习的辅 导。 课时 分配 3(课堂教学)+1(教学实验)/周 考核 方式 平时(书面作业、课堂测试)20%,上机(+报告)15%,期中20%,期末40%,考勤 和态度5%。 期中考试、期末考试与学院的《数据结构与算法A》和《数据结构与算法A(实验 班)》有60%的基础内容统一出题、统一阅卷,另外40%独立命题。平时作业和上 机作业由各班根据专业要求灵活掌握,教员协调给出成绩。 注重综合能力的考评,平时表现突出、上机实践能力较强的可以得到奖励加分。 主要 1. 张铭、王腾蛟、赵海燕,《数据结构与算法》,高等教育出版社,2008年6月