数据结构教程期末学习总结

 这学期学习了数据结构这门课之后也没有想过总结一下自己到底学到了什么。在贺老师的提醒下才想着写这样一篇文章来总结一下自己这一学期的学习。

  首先,第一次接触到这门课,我的感觉就是一个字——难。很难,不知道该这门课到底讲的什么,不清楚自己怎么才能把它学好。那书的第一章——绪论就给了我解释。数据结构涵盖了计算机学科的算法设计、数值分析、操作系统和编译原理等课程所涉及的大部分相关算法的实现。数据结构包括逻辑结构、存储结构和运算集合。而算法也是很重要的一部分。一个好的程序不仅仅只有空洞的代码,数据结构+算法才等于一个好的程序。对于一个程序来说,数据是原料。而没有算法的程序将会是无本之末,无源之水。一个好的程序你需要对它进行设计,架起一个结构,并入一些算法来实现它的相关功能。这才能称为程序。

在这门课程中,我又学到了一种新的学习方法,就是贺老师的翻转课堂。第一次接触这种学习方法, 只觉得新奇。度娘告诉我,“翻转课堂是指重新调整课堂内外的时间,将学习的决定权从教师转移给学生,教师不再占用课堂的时间来讲授信息,这些信息需要学生在课后完成自主学习,学生能在任何时候去查阅需要的材料。教师也能有更多的时间与每个人交流。在课后,学生自主规划学习内容、学习节奏、风格和呈现知识的方式,教师则采用讲授法和协作法来满足学生的需要和促成他们的个性化学习”。看到这里,我不禁有些着急。我知道我是一个很没有毅力、没有自控力的人,这对我来说是一个极大的挑战。我对我的数据结构学习之路有些担忧。但是我也尽力跟着贺老师发布的资源走,尽力跟上老师的课程进度,坚持看视频、写博文。虽然进度缓慢,但总也是在学习。

  在本书的第二章我们学习了线性表,线性表的逻辑结构、数据存储结构、链式存储结构以及线性表的应用。然后又学习了栈和队列。从数据结构的定义来看,栈和队列也是一种线性表。堆栈与队列是两种运算受限制的线性结构。其基本运算方法与顺序表和链表运算方法基本相同,不同的是堆栈须遵循“先进后出”的规则,对堆栈的操作只能在栈顶进行;而队列要遵循“先进先出”的规则,教材中列出了两种结构的相应算法,如入栈、出栈、入队、出队等。在介绍队列时,提出了循环队列的概念,以避免“假溢出”的现象。接下来我们还学习了递归,递归调用的实现原理、递归算法的设计等等。第六章介绍了特殊矩阵和广义表的概念与应用。其中,特殊矩阵包括对称矩阵、三角矩阵、对角矩阵和稀疏矩阵,书中分别详细介绍了它们的存储结构。稀疏矩阵的应用包括转置和加法运算等。最后介绍了广义表的相关概念及存储结构。第七章二叉树的知识是重点内容。在介绍有关概念时,提到了二叉树的性质以及特殊的满二叉树。接着介绍二叉树的顺序存储和链接存储以及基本算法。重点介绍二叉树的遍历算法(递归算法、先序、中序和后序遍历非递归算法)和线索二叉树。二叉树的应用就是哈夫曼树的这种算法、编码。然后就到了图。通过本门课程的学习,对图的概念有了一个新的认识,在学习离散数学的时候,总觉得图是很抽象的东西,但是在学习了数据结构这门课程之后,我慢慢地体会到了其中的奥妙。图分为有向图和无向图,而无向图又是有向图在权值双向相等下的一种特例。图的存储结构的知识点有:邻接矩阵、邻接表。图的遍历包括图的深度优先搜索遍历和广度优先搜索遍历。最后我们又学习了查找和排序。

  数据结构是一门应用性非常强的课程,我们在掌握各种数据结构的基础上,一定要尽可能多地上机练习。在这一点上,我知道自己做的不够好。这门课结束之后,我总结了学习中遇到的一些问题,最为突出的是当自己采用刚学的知识点完成项目时却感到十分棘手,想不到适合题意的算法。针对这一情况,我会严格要求自己,熟练掌握算法思想,尽量独立完成程序的编写与修改工作。只有这样,才能够提高运用知识、解决问题的能力。以上便是我对《数据结构教程》这门课的学习总结,我会抓紧时间将没有吃透的知识点补齐。今后我仍然会继续学习,克服学习中遇到的难关,在打牢基础的前提下向更深入的层面迈进!最后,还是想对贺老师求期末考试简单一点,求过过过!

你可能感兴趣的:(数据结构教程期末学习总结)