2)交换排序的分类:冒泡排序、快速排序。
3)两种排序的实现过程。 4)冒泡排序的算法实现。
1、识记:交换排序的基本思想。 2、理解:两种排序的实现过程。 3、应用:对给定数据排序的实现。
(四)选择排序(重点) 1)选择排序的基本思想。
2)选择排序的分类:直接选择排序、堆排序。 3)堆排序的概念以及初始堆的建立
3)两种排序的实现过程。 4)直接选择排序的算法实现。
1、识记:选择排序的基本思想。 2、理解:两种排序的实现过程。 3、应用:对给定数据排序的实现。
(五)归并排序(一般) 1)归并排序的思想。 2)二路归并的实现过程。
1、识记:归并排序的基本思想和实现过程。
第三部分 实践环节
一、教学目的
试验目的在于更深入的理解和掌握课程教学中的有关基本概念,将知识转化为能力,通过解决实际问题,来提高分析和解决问题的能力。因此明确试验的目的,以保证达到课程所指定的基本要求。
实验一 顺序存储的线性表
(一)实验目的:
1、了解线性表的逻辑结构特征。
2、熟练掌握线性表的顺序存储结构的描述方法及在其上实现各种基本运算的方法。
3、掌握和理解本实验中出现的一些基本的C语言语句。 4、体会算法在程序设计中的重要性。 (二)实验内容:
1、将一顺序表中的元素逆置,要求算法仅用一个辅助结点。 2、求顺序表中的元素的最大值和次最大值。
3、设一顺序表中元素值递增有序。试设计一算法,将元素x插入到表中适当的位置上,并保持顺序表的有序性。
实验二 单链表
(一)实验目的
1、熟练掌握线性表运用链表存储时的各种运算的算法实现。 2、掌握和理解本实验中出现的一些基本的C语言语句。 3、体会算法在程序设计中的重要性。 (二)实验内容
1、设计一算法,逆置带头结点的动态单链表,要求用原表的结点空间。 2、设一链表表中元素值递增有序。试设计一算法,将元素x插入到表中适当的位置上,并保持顺序表的有序性。
3、在无表头结点、也无头指针的非空单循环链表中,指针S指向该链表中的任一结点,试写一算法删除结点S的直接前驱结点。
4、设有两个按元素值递增有序的单链表A和B,编一程序将A表和B表归并成一个新的递增有序的单链表C(值相同的元素均保留在C表中),并要求利用原表的空间。
实验三 栈和队列
(一)实验目的
1、掌握栈和队列的数据结构的特点。
2、熟练掌握在两种存储结构上实现栈和队列的基本运算。 3、学会利用栈和队列解决一些实际问题。
4、掌握和理解本实验中出现的一些基本的C语言语句。 5、体会算法在程序设计中的重要性。 (二)实验内容
1、写一算法将一顺序栈中的元素依次取出,并输出元素值。 2、写一算法将一链栈中的元素依次取出,并输出元素值。
3、写一算法将一顺序队列中的元素依次取出,并输出元素值。 4、写一算法将一链队列中的元素依次取出,并输出元素值。
实验四 串
(一)实验目的
1、掌握串的顺序和链式存储结构的实现方法。 2、了解串的模式匹配算法。 (二)实验内容
1、写出取子串运算的算法。 2、写出替换运算的算法。
实验五 二叉树
(一)实验目的
1、熟悉二叉树的各种存储结构及使用范围。 2、掌握建立二叉树的存储结构的方法。 3、熟练掌握二叉树的三种遍历方式的递归算法。 4、掌握递归的方式。
(二)实验内容
1、以二叉链表作存储结构,设计求二叉树高度的算法。 2、以二叉链表作存储结构,编写递归的中序遍历算法。
实验六 图
(一)实验目的
1、掌握图的两种存储结构的实验方法。 2、掌握遍历图的递归算法。 (二)实验内容
1、设计算法,构造无向图的邻接链表。 2、设计算法,构造无向图的邻接矩阵。
实验七 查找
(一)实验目的
1、掌握顺序查找、二分查找的递归和非递归算法。 2、掌握散列表上的各种操作。
3、了解在二叉排序树上各种操作的实现。 (二)实验内容
1、给出顺序表上顺序查找元素的算法。 2、给出非递归的二分查找算法。
实验八 排序 (一)实验目的
1、熟练掌握在顺序表上实验排序的各种方法。 2、深刻理解各种算法的特点并能灵活运用。 (二)实验内容
顺利编写各种排序程序,实现对任意无序序列的递增排序操作。