不要为已消尽之年华叹息,必须正视匆匆溜走的时光。 ——布莱希特
《数据结构与算法分析》
――课程内容体系主要内容
教学单元模块具体教学内容绪论绪论部分是全书的预备知识,主要对ADL语言、数据结构与算法、算法分析基础、OOP、和C++做了简单介绍基本数据结构基本数据结构部分包括线性表、堆栈与队列、数组、字符串、整数集合类、树(包括AVL树、伸展树等)、图(包括网络流等问题的讨论)、散列(Hash)等典型算法典型算法部分主要介绍了若干典型算法的实现,并给出必要的复杂性分析和比较过程,具体包括递归、排序、查找和内存管理等复杂数据结构复杂数据结构部分主要包括优先级队列、不相交集合类和文件结构等算法设计技巧典型算法设计技巧的介绍,主要包括贪婪算法、分治算法、动态规划、回溯算法和随机化算法等应用应用部分是上述数据结构和典型算法的一些应用示例,具体包括事件驱动模拟、等价类、残缺棋盘和图象压缩等问题的讨论,在课时允许的情况下还会介绍摊还分析、红黑树等
《数据结构与算法分析》
课程实践内容体系主要内容
实践教学单元模块实践教学基本要求实践教学具体内容趣味程序设计实践1.熟悉编程环境
2.复习C语言程序设计的基本内容1.开学第一、二周布置若干趣味程序设计题目,如奇数阶幻阵算法、万年历算法、迷宫算法等。并完成:
2.随机产生n个整数,然后用一种排序算法将它们从小到大排序。
3.试编一程序,用贪心法求解一般的着色问题。链表应用实验1.熟悉链表结构
2.掌握链表结构上的各种操作
3.学会运用链表结构求解问题1.试将本章介绍的两种Josephus问题的求解过程在计算机中实现,实现时要求输出的不是整数,而是实际的人名。
2.设A与B分别为两个带有头结点的有序循环链表(所谓有序是指链接点按数据域值大小链接,本题不妨设按数据域值从小到大排列),list1和list2分别为指向两个链表的指针。请写出并在计算机上实现将这两个链表合并为一个带头结点的有序循环链表的算法。栈与队列应用实验1.熟悉栈和队列结构
2.掌握栈和队列结构上的各种操作
3.学会运用栈和队列结构求解问题1. 设计实现一个求解n阶Hanoi塔问题的算法
提示:将n个圆盘由A依次移到C,B作为辅助塔座。当n=1时,可以直接完成。否则,将塔座A顶上的n-1个圆盘移动到塔座B上,用塔座C作为辅助塔座;然后移第n个圆盘;最后将塔座B上的n-1个圆盘移到塔座C上,并用塔座A作为辅助塔座。
2. 根据书中介绍的思想,设计并实现一个对简化表达式求值的系统。