数据结构课程大总结

本学期开了数据结构这一门课程,跟随贺利坚老师以及他的翻转课堂,让我学会了很多,初步了解了数据结构,懂得了算法设计的一点基础。

时间已至学期末,现采用ORID方法进行总结:

O:数据结构一书第一章带我们初步认识数据,了解其存储结构和逻辑结构以及算法和算法的性能分析,接下来的内容就是详细的讲解了各种数据的存储和逻辑结构,以及其功能的应用。第二章讲解了线性表,是一种很典型的线性结构,其存储结构可分为顺序(即顺序表)和链式(即链表)两种,还可延伸出单链表 ,双链表和循环链表。第三章讲解了栈和队列,可以说是两种操作受限的线性结构,其存储结构也可分为与线性表相等的两种,栈和队列在某些符合其特点的情况下具有很好的作用。第四章讲解了串结构,,是由字符元素组成的,其存储结构可分为顺序串和链串,串的模式匹配中有一种很经典的算法——Brute-Force算法。第六章学习了数组中的特殊矩阵的压缩存储,利用特殊矩阵的规律对它们进行压缩存储,以提高存储空间效率。还学习了稀疏矩阵的三元组表示,极大简化了稀疏矩阵的表示方法。到此为止,以上的数据结构都为线性结构,接下来的七八章讲解了树结构和图结构,才是重中之重。树结构中的主要学习了二叉树结构,其顺序和链式存储,二叉树与树、森林之间的转换,二叉树的基本运算以及二叉树的先序、中序和后序遍历方法,还有二叉树的延伸——线索二叉树以及哈夫曼树。图结构主要讲解了图的存储方法、图的各种遍历方法、生成树和最小生成树问题以及最短路径问题,并且延伸了拓扑排序和AOE网与关键路径问题。第九章介绍了查找的几种方法,包括线性表查找的顺序、折半、索引和分块查找,树表中的二叉排序树、平衡二叉树和B-树以及哈希表的查找。第十章介绍了排序方法,包括插入排序,冒泡排序,快速排序,选择法排序,堆排序,归并排序以及基数排序,并且对集中排序方法进行了比较和选择。

R:本学习我对本门课程的掌握程度我认为不够扎实,我在许多难点的地方没有做到尽力去攻克,放到最后越积越多。在树结构和图结构的学习中,由于内容太过于冗杂庞大,我没有耐心的一点一点的掌握。所以我需要改变学习方法,在老师发布学习任务以后的第一时间就要进行初步的预习,并且找出重点和难点,然后在下一次的学习中,集中精力去攻克难点,掌握重点,最后把握整体,做到把知识掌握牢固。

I:通过对每一个知识点和难点的反复研究和琢磨,把每一个知识点都理解透彻,遇到久攻不下的难题,就要想办法解决,可以通过网络搜索资源,也可以询问老师。多与同学之间交流探讨或许可以得到新的启发和认识,与老师之间多交流,可以扩大自己的眼界。

D:从我自身来说,算法的功能之强大现在我或许感受没有那么深刻,但是通过老师的讲述,我能感觉到厉害之处。就我个人的角度,我认为算法之所以如此重要,是因为它对数据运行的时间和空间的充分利用,即根据各种数据的特点选择适合这种数据存储和运算的结构,进而减少数据存储的空间消耗和数据运行的时间。这些在工程量小的项目上或许体现的不是很明显,但是一旦运用到大工程,其所减小人力和财力的消耗就是显而易见的了(仅仅是个人观点,如有错误,请包涵)。所以,学好数据结构一课尤其重要。

你可能感兴趣的:(数据结构课程大总结)