文档介绍:《数据结构与算法分析》
书籍鼓舞了我的智慧和心灵,它帮助我从腐臭的泥潭中脱身出来,如 果没有它们,我就会溺死在那里面,会被愚笨和鄙陋的东西呛住。—— 咼尔基
《数据结构与算法分析》
——课程内容体系主要内容
教学单元模块
具体教学内容
绪论
绪论部分是全书的预备知识,主要对ADL语言、数据结构与算法、算 法分析基础、OOP、和C++做了简单介绍
基本数据结构
基本数据结构部分包括线性表、堆栈与队列、数组、字符串、整数集 合类、树(包括AVL树、伸展树等)、图(包括网络流等问题的讨论)、 散列(Hash)等
典型算法
典型算法部分主要介绍了若干典型算法的实现,并给出必要的复杂性 分析和比较过程,具体包括递归、排序、查找和内存管理等
复杂数据结构
复杂数据结构部分主要包括优先级队列、不相交集合类和文件结构等 算法设计技巧
典型算法设计技巧的介绍,主要包括贪婪算法、分治算法、动态规划、 回溯算法和随机化算法等
应用
应用部分是上述数据结构和典型算法的一些应用示例,具体包括事件 驱动模拟、等价类、残缺棋盘和图象压缩等问题的讨论,在课时允许 的情况下还会介绍摊还分析、红黑树等
《数据结构与算法分析》
课程实践内容体系主要内容
实践教学单元模块
实践教学基本要求
实践教学具体内容
趣味程序设计实践
熟悉编程环境
复习C语言程序设计的基本内容
1•开学第一、二周布置若干趣味程序设计题目,如奇数阶幻阵算法、 万年历算法、迷宫算法等。并完成:
2•随机产生n个整数,然后用一种排序算法将它们从小到大排序。
3•试编一程序,用贪心法求解一般的着色问题。 链表应用实验
熟悉链表结构
掌握链表结构上的各种操作
学会运用链表结构求解问题
试将本章介绍的两种Josephus问题的求解过程在计算机中实现, 实现时要求输出的不是整数,而是实际的人名。
2•设A与E分别为两个带有头结点的有序循环链表(所谓有序是指链 接点按数据域值大小链接,本题不妨设按数据域值从小到大排列), listl和list2分别为指向两个链表的指针。请写出并在计算机上实 现将这两个链表合并为一个带头结点的有序循环链表的算法。
栈与队列应用实验
熟悉栈和队列结构
掌握栈和队列结构上的各种操作
学会运用栈和队列结构求解问题
设计实现一个求解n阶Hanoi塔问题的算法
提示:将n个圆盘由A依次移到C, E作为辅助塔座。当n=l时,可 以直接完成。否则,将塔座A顶上的n-1个圆盘移动到塔座B±,用 塔座C作为辅助塔座;然后移第n个圆盘;最后将塔座E上的n-1个 圆盘移到塔座c±,并用塔座A作为辅助塔座。
根据书中介绍的思想,设计并实现一个对简化表达式求值的系统。
在计算机上模拟实现农夫过河问题的解。 文本文件检索实验
1 •熟悉字符串的操作
学会运用字符串的操作进行文本检索和查询。
根据课堂介绍设计实现KMP算法
试设计一个简单的文本编辑器,使之具有对字符串的输入、输出、 插入、删除、查找和替换等功能
设计实现一个通用的判定回文个数问题的算法程序
稀疏矩阵和广义表实验
熟悉稀疏矩阵和广义表结构
掌握稀疏矩阵和广义表结构上的各种操作
学会运用稀疏矩阵和广义表结构求解问题
设计实现两个普通矩阵相乘的算法
实现用三元