天天看点

感性认识数据结构

以非常不专业的语言,分享一下自己的理解,试着感性的认识一下数据结构。

(来自于一位未知名知乎用户回答)

————————————————————————————————————————

感性认识数据结构

想象一下我们有一条非常非常长的纸条。

这张纸条只能写一行字。

现在我们要把一些描述现实世界的东西写在这张纸条上。

然后把这张纸条给别人。

别人通过咱们这张纸条重构我们所描述的世界,或者在里面查找、推演出自己所需要的信息。

1.这张“纸条”就是信息的载体,包括硬盘、软盘、内存、甚至磁带,塑胶唱片,钢丝留声机,说白了他们都是一张转着圈或者拐着弯的纸条。

2.“给别人”的过程就是读写硬盘过程、网络传输过程、无线电发报机滴滴哒哒收发信息的过程等等。

3.数据结构所解决的问题就是,你怎么用一行字把这些复杂的东西描述出来,别人怎么读懂这些啰里吧嗦的东西(注:人看着啰嗦没事,机器看着不罗嗦就行)

4.编程,就是怎么解决3,怎么解决3之后解决重构出来的世界的一些具体问题…

结语:只要把我们的世界观从三维转到一维,就能学懂数据结构了…

————————————————————————————————————————

好像写出了点意思,继续开脑洞。

脑补一下黑客帝国中,史密斯碎成渣(三维降一维),变为一串串帅气的数字雨(多线程纸条?),传输到另一个地方(网络传输?)

感性认识数据结构
感性认识数据结构

数字雨又华丽的重组了一个史密斯(一维重构三维),来到尼尔面前(被打)。

感性认识数据结构

————————————————————————————————————————

继续开脑洞?作为一个严谨的同学,这次脑洞要开的现实一点。

可以想象一下,

你是一个间谍,

感性认识数据结构

女王大人命令你:

把敌人特务机构的层级关系(树?),用摩斯密码发回去。

把敌人网状的地下通道的拓扑结构(无向图?),用摩斯密码发回去。

把敌国当红明星之间的八卦关系(有向图?),用摩斯密码发回去。

感性认识数据结构

是不是抱着发报机,哭着后悔没学好数据结构了,学渣特工同学

————————————————————————————————————————

好吧,来一丢丢小干货?

你以为你在看一个网页?

右键单击网页,查看源代码。

其实,你看的是一串字符,换行处的字符是\r\n

这是结构化的一行数据。

浏览器理解了这种结构,

显示给你看到了这个漂亮的网页。

你以为你看的是一个图片?

他也是一行数值,只不过可以根据长宽转换为矩阵

这个矩阵操控着显示器的色彩明暗,

虚拟一个现实给你,

也是结构化的一行数据。(可以试着把图片转为Base64编码理解下?)

你以为word很神秘?

后缀改成.zip,

然后解压,

你看到的,

还是一堆结构化的数据。

结构是人为的规则,书里讲的数据结构,是数据组织最基本的规则,是机器层次的数据组织规则。

还有各种各样的数据标准,文件格式,是更高层次的数据组织规则,是给编程人员看的。

更高层次的组织规则?比如老板给你要的报表的标准模板,那就是给业务人员看的。

————————————————————————————————————————

题外话:

1.一个工程问题首先抽象成理论问题,然后利用数学方法进行推演解决,获得了理论知识。然后一套理论知识形成一本书或者一门课。学一门课首先或者最终一定要搞清它解决的是什么样的工程问题,才算是学懂了。

换句话说,你要知道当初那个人是遇到了多么苦逼的问题,才提出一个这么牛逼的解决办法。

2.学一门课,最重要的是理解,遇到实际问题要知道用什么方法去解决。

打个比方就是为知识在大脑内存里建立索引,将知识存在外存,比如书本,百度之类,用到了再去复习一下读进内存。(不排除有内存够大的同学都记在脑子里)

比如当要你用关系数据库去存储树结构的时候,当给你链表让你拼写返回json数据的时候,当你要搜索一个矩阵中的连通区域的时候,最最起码要做到的是,知道自己现在需要一本数据结构的书,再好点要知道用哪一个章节的哪个模型。

学霸可能已经动手写出来了,但作为学渣翻翻书再写出来,也不会很丢人吧。

而且,下次你就可能就用不到翻书了。

3.不要让死气沉沉的概念、定义,约束了自己的想象力。一开始定义这个定义的人,沉淀了自己的思想,做出了精准的描述,为的是更好的与别人交流这个东西,而不是用来约束别人的思想。

4.当然,自己的专业知识、专业技能,最终还是要沉淀下来,毕竟还要靠它吃饭。最后还是赶快听楼上几位大牛的忠告,脚踏实地的去码代码吧…

————————————————————————————————————————

链接:https://pan.baidu.com/s/1pxQ0zY0aQdY_OaL9E1j3Cw

提取码:n7m6

感性认识数据结构

分享几本个人下载的数据结构书籍,适合自己阅读学习的可以选择去商店购买正版书籍!

继续阅读