都说数据结构重要,那么究竟什么是数据结构?
大学阶段,如果问大家计算机专业课中哪门课是最重要的?想必有一多半的人都会回答数据结构。既然大家都说数据结构重要,那么究竟什么是数据结构呢?
从专业角度解答:其实数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
如果按照自己的方式理解的话,我认为数据结构是一种抽象的封装。我们平时写程序都是直接去调用这些数据结构,而没有去想它们的内部实现是怎样的。数据结构这门课就是要告诉我们常见的数据结构是如何实现的,比如Vector,map的实现。我们常常听到的譬如平衡二叉树,红黑树,大顶堆等词汇就是出自数据结构这门课。具体了解数据结构后,我们就可以知道队列的内部实现是什么样,词典的内部实现又是什么样。
学习了数据结构以后,我们还可以针对某一场景去选择某种数据结构,比如随机读写时我们会选择数组,而经常插入删除时我们会选择链表。也可以自己创建一些适合项目情景的数据结构。
最近总是有很多小伙伴担心,没学过离散数学能学数据结构吗?我的回答是完全可以的,其实只要会基本的代码语法就可以学习数据结构,也没有什么必须遵循的学习次序。其实离散数学和数据结构的关系并不是很大,但也不能说没关系。因为离散数学会讲图论、集合论,这些知识都是对数据结构的理论支持。但是两者之间的关系远未大到没学离散数学就学不了数据结构的程度。顺便多说一句,离散数学的数理逻辑、集合论、图论等理论对算法学习也很有帮助。
数据结构怎么学?如何入门?
首先你一定要会写代码,我学习过C和C++的数据结构,我个人认为熟悉C/C++的数据结构后,可以更好地理解计算机系统。毕竟C和C++比较难,学好了与它们相关的数据结构后,其实其他编程语言的数据结构都是大同小异,可以无压力切换。当然,你要是不喜欢C/C++,那也没必要非去学,毕竟搞懂它们要耗费的时间成本还比较大,其实直接学python的数据结构也不是不可以。
觉得我的文章有用,别忘了收藏+关注哦~