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

前言

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

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

我每次都回答,“当然是数据结构和算法了”
在这里插入图片描述

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

大家都听说过区块链吧

我可以给大家花个简单的区块链示意图:
在这里插入图片描述

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

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

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

正文

好言归正传

数据结构主要关注逻辑结构、数据的运算和物理结构(存储结构)。
在这里插入图片描述
如果你还想对数据结构与算法的内容想多了解的话:我这有一份584页的PDF文档与视频讲解版本

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

文档版,如下图:
在这里插入图片描述

视频版(部分)如下图:
在这里插入图片描述

01 逻辑结构

集合结构和数学中的集合概念类似,各个元素同属一个集合。
在这里插入图片描述
线性结构的元素像一条线。
在这里插入图片描述
树形结构的元素就像一棵树,常见的思维导图、文件夹展开的目录都是树形结构。
在这里插入图片描述
图结构像一张网。
在这里插入图片描述

02 数据的运算

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

03 物理结构

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

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

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

在这里插入图片描述
链式存储通过存储下一个元素的地址表示出元素间的线性结构。
在这里插入图片描述
索引存储用一张索引表来查出元素在内存中的位置。
在这里插入图片描述
散列存储没有索引表,而是根据元素的关键字直接计算出该元素的存储地址,很厉害。
在这里插入图片描述
如果你还想对数据结构与算法的内容想多了解的话:我这有一份584页的PDF文档与视频讲解版本

👇🏻 扫一扫 添加备注:(锦鲤) 获取更多资料👇🏻
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值