前言:
数据结构是极其重要的基础学科,所有计算机专业的同学都必须学这门学科。可能很多同学会有一个疑问,
为什么要这么重视数据结构的学习?
数据结构研究的是数据如何在计算机中进行组织和存储,使得我们可以高效的获取数据或者修改数据。
听其简单,实则是要求:在各种不同的应用场景下可以高效的获取数据,并且修改数据。因此才有了各种不同的数据结构。
数据结构分类
整体而言,数据结构可以分成三种结构,分别是线性结构,树形结构以及图结构。
计算机世界中,数据结构无处不在
最典型的例子就是数据库,比如做一个网站,app,像注册,查询信息,用户可以发布各种不同的信息,这些都是要被存储在数据库中。
通常,数据库是一种SqlServer语言封装的软件,我们只用拿来即用。而反思,数据库软件的底层便是由大量的数据结构的知识组成。其中存储所用到最重要的知识便是使用树结构,尤其是平衡的树结构(AVL,红黑树,B树等等)。没有数据结构的基础,便难以制作出数据库。而没有数据库的话,可能我们现在世界上的大多数的互联网的业务难以运转和维持。
场景:
我们需要根据应用场景的不同,来灵活的选择最合适的数据结构存储我们的数据,进而解决相应的问题
举个栗子
一个简单的栗子,在操作系统中普遍都是支持多任务的切换。为了完成任务的切换就需要涉及到数据结构,而其中最典型的便是栈和堆这两种结构。比如使用递归调用的时候,可能要借助系统栈这样的空间来完成递归过程。而对于堆这种数据结构,则用于组建优先队列这样的一个结构,由于有了优先队列,系统才可以快速地在多个多个任务之间进行打开和切换操作。
另外一个栗子,就是文件压缩。像rar,zip等压缩方式对音频,视频和文档,在对不同文件进行压缩的时候,也需要借助数据结构。而一个最基础的压缩算法所使用的数据结构,便是哈夫曼树。如今的的文件压缩算法(比如7z),有可能需要更复杂的数据结构来进行支撑。
学习数据结构有什么用?
我的观点是,如果你只是希望使用现有的工具来搭建出一个产品的话,数据结构对于你来说很有可能确实没有用。而你要做的其实是在于这个产品的逻辑、商业模式、交互体验设计等等方面内容。即使在技术上遇到了瓶颈,也可以通过聘请或者咨询高级资深的专家来解决这些问题。恰恰一名真正的技术专家,数据结构将是他工作中不可或缺的一部分。
总结:
我将带领大家从零开始逐渐的深入到数据结构这个领域中,学习完此章程,各位将对涉及的大多数的数据结构都会有一个相对深刻的认识,甚至是能从底层一点一点的实现。
本文转载自: https://loubobooo.com/2018/07/14/%E5%88%9D%E5%AD%A6%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/