数据结构是计算机相关专业的基础课,也是核心课 二、数据结构三个研究内容的相互关系程。在教学实践中,数据结构是一门难教也难学的课程, 逻辑结构、存储结构和运算之间的关系如图1所示。简 一方面由于数据结构的前导课是程序设计课,学生的计算 单而言,逻辑结构是从问题中抽象出来的模型,即数据和 机编程语言基础不好,另一方面数据结构课程本身研究的 数据间的相互关系。根据解决问题的需要,可以定义若干 内容多、学时少,教师在讲授时对课程重点的把握不到 操作,即运算。为了使计算机能够解决问题,首先必须先 位,或为了将所有课程内容讲完而导致重点不突出,教学 将数据和数据间的关系存储在计算机中,在这个过程中首 效果差。本文基于长期的教学实践,结合应用型本科院校 先是对存储结构进行选择和实现。一旦选定了某种存储结 教学目标和学生特点,对数据结构课程部分教学内容的内 构,第二步是基于这种存储结构的运算的实现。在实际教 在联系进行分析,为数据结构课程的教学及重难点的选取 学中,对数据结构研究内容和关系的简介一般是安排在绪提供参考。 论中进行的,此时学生刚开始接触课程,缺乏实例引证,一、数据结构的知识点和三个研究内容 即便是记住了三个方面内容,对三者之间的联系是很难真 [1] 正理解的,如果教师在后续课程各知识点的讲解过程中忽 目前较为流行的数据结构教材 一般涵盖了以下知识 视了对三者联系的揭示和分析,学生对各知识点的学习则 点:绪论、线性表、栈和队列、串、数组和广义表、树、是碎片化的,加剧了学习困难。 图、查找和排序。以48学时的理论课时安排为例,是难以三、数据结构主要知识点与三个研究内容的相互关系 将以上内容全部在课堂上讲授完毕的。从数据结构学科层 面来看,数据结构包括三个方面的内容:(1)数据的逻辑 表1展示了数据结构主要知识点与逻辑结构、存储结构 结构(2)数据的存储结构(3)数据的运算。其中,逻辑 和运算之间的归属和相互关系。其中线性结构包含的知识 结构类型有四种,分别是集合、线性结构、树形结构和图 点最多、最基础,教学实践表明,在完成对线性结构中线 形结构,由于集合中的元素不具有某种关系,一般不作为 性表部分的讲解后,分三个方面对线性结构的逻辑特性、 数据结构课程的讨论范围,其它三种逻辑结构类型则为本 存储结构及基本运算进行总结,并结合绪论内容解释三者 课程讨论的重点;存储结构类型也有四种,分别是顺序存 的相互关系,有助于学生从整体上理解课程的模式,厘清 储结构、链式存储结构、索引存储结构和散列存储结构, 逻辑结构和存储结构的区别与联系,也为随后的知识学习 其中顺序和链式存储结构是最基本、使用最广泛的两种存 奠定良好基础。
储结构,顺序存储主要通过程序设计语言(以C语言为例) 中的数组实现,链式存储则通过链表实现,存储结构是本 课程的重点,由于涉及到代码实现,是学生的薄弱环节, 因此也是难点内容。索引和散列存储结构则是面向查找操 作的存储方式,本文不对其展开讨论;数据的运算则主要 包括初始化、创建、插入、删除、查找、输出、销毁等操 作,采用不同的存储方式,实现以上操作的具体代码也不 相同,并且涉及到算法执行效率的分析,因此是本课程的重点和难点。
参考文献:
李春葆.数据结构教程(第5版)[M].北京:清华大学出版社