【重点】程序员一定要搞懂的数据结构的3要素

【重点】程序员一定要搞懂的数据结构的3要素,第1张

前言

以前没有工作之前,老是会遇到别的行业的人,或者说想要学习计算机的同学,他们老是会问我一个问题:

“你觉得计算机专业课中哪门课最重要?”

我每次都回答,“当然是数据结构和算法了”

我认为数据结构之所以很重要,是因为它是程序的根基,不说别的,我就举个很火的例子。

大家都听说过区块链吧

我可以给大家花个简单的区块链示意图:

大家可以把每一个区块简单的理解成一个单一的对象。你仔细观察发现,这区块链为啥看起来像是一个链表结构?

其实他就是一个链表,只是在下一个链表中存入了上一个链表的hash地址值,如果上一个区块有一点改变,那它的hash地址值就会发生改变,就会和下一个链表中存入的hash值不匹配。那么这个区块链就作假了,所以说,区块链具有不可篡改性和防伪性。

这么牛(hu)逼(you)人的项目,和数据结构的关系大不大呢?如果大家没学过链表,是不是看起来有点迷糊?

正文

好言归正传

数据结构主要关注逻辑结构、数据的运算和物理结构(存储结构)。

如果你还想对数据结构与算法的内容想多了解的话:我这有一份584页的PDF文档与视频讲解版本

看这里: 直接获取方式点我

文档版,如下图:

视频版(部分)如下图:

01 逻辑结构

集合结构和数学中的集合概念类似,各个元素同属一个集合。

线性结构的元素像一条线。

树形结构的元素就像一棵树,常见的思维导图、文件夹展开的目录都是树形结构。

图结构像一张网。

02 数据的运算

数据的运算其实就是大家熟悉的增删改查,不过相比数据库现成的SQL,数据结构实现起来有很多细节需要考虑。

03 物理结构

物理结构是计算机存储的结构。

比如线性结构在底层需要物理结构来实现。

顺序存储把元素按顺序存储起来,这样元素的线性结构就体现出来了。


链式存储通过存储下一个元素的地址表示出元素间的线性结构。

索引存储用一张索引表来查出元素在内存中的位置。

散列存储没有索引表,而是根据元素的关键字直接计算出该元素的存储地址,很厉害。

如果你还想对数据结构与算法的内容想多了解的话:我这有一份584页的PDF文档与视频讲解版本

👇🏻 扫一扫 添加备注:(锦鲤) 获取更多资料👇🏻

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/1298303.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存