• 小步前进之数据结构基础


    前言

    本文是对学习知识的总结,基于现有知识的基础上加上个人理解,如果有侵权,必删。
    工作中CRUD了2年,是时候从头开始沉淀,一步一个脚印,做好一个合格的程序员,在代码的世界里起舞。

    什么是数据结构?

    要了解数据结构,首先使用文字拆分法,即数据 +结构,那什么是数据呢?
    其实,数据很好理解,你的家族就可以理解为一个数据,显而易见,家族成员们之间的关系就是结构。
    这是对于我们而言,对于计算机来说:

    数据,是描述客观事物的符号,是所有计算机可操作的对象,是能被计算机识别,并输入给计算机处理的符号集合—《大话数据结构》

    数据又分为数据元素、数据项、数据对象。
    通俗来说,如果说人类是一个数据,那人就是组成数据的数据元素,人的所有相关信息都是数据项,例如姓名、年龄等。

    数据项是数据不可分割的最小单位。—《大话数据结构》

    结构,官方语言,组成整体的各部分的搭配和安排,通俗的说就是关系,比如你爸爸跟你是父子关系,爷爷跟你爸也是父子关系,这就是一种结构组成,即

    数据元素和元素之间存在特定的关系为之结构。—《大话数据结构》

    综上所述,所谓的数据结构:

    是相互之间存在一种或多种特定关系的数据元素的集合。—《大话数据结构》

    既然说数据结构是一种特定的关系,那不同的关系即代表不同的结构,首先,从理论和实际上区分,数据结构可为逻辑结构和物理结构。

    逻辑结构

    逻辑结构即数据元素之间的关系,例如你和你爸爸是父子关系,你和哥哥是兄弟关系,即

    数据对象中数据元素之间的相互关系。—《大话数据结构》

    逻辑结构大致分为集合、线性、树形、图形。

    集合结构(人人平等,抱团行动)

    集合可以理解为一个班级内的所有学生,大家都是平等的。(现在知道为啥读书都是操场集合了吧)
    在这里插入图片描述

    线性结构(老鹰捉小鸡)

    线性结构比较简单,数据元素之间是一对一的,具体如下图(记得当年我也是个高手)
    1对1

    树形结构(绿油油的大树)

    树形结构就比较容易理解了,跟它的名字一样,就是一个树干,有多个树枝,每个树枝上又有多片叶子,即一对多。(就是有点绿)
    在这里插入图片描述

    图形结构(女人逛商场,就是买!买!买!)

    图形结构就是多对多的关系,大致理解成你可以向多个商家购买东西,一个商家也可以接待多个顾客的这种微妙关系。
    买不起

    物理结构

    聊完了理论,我们聊聊实际,所谓的物理结构就是你在计算机上存储数据的形式。

    通俗的来说就是住哪,怎么住,例如你爸爸在主卧住,而你在大厅打地铺。

    物理结构分为顺序和链式结构。

    顺序结构

    强行有十个格子,对格子进行顺序编号,1-10,然后安排10个人站满格子,相应的格子编号就是人的编号。这样子要找对应的人就可以找对

    应的编号即可,格子和人的逻辑关系和物理关系是一致的,这即是顺序结构。

    顺序结构是把元素放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。—《大话数据结构》

    链表结构

    事实上,不是所有人都是按规律来的,总有人插队,还有人放弃排队的,这样动态变化的的结构,顺序结构可顶不住,所以我们需要“自由”,即

    可以随意放置在任意的存储单元里,这组存储单元可以连续可以不连续。—《大话数据结构》

    在快餐店吃饭的时候,你点完单,服务员会给你一个号码牌,随后你无论去哪里坐,饭菜做好了服务员会根据你的牌子给你送餐,其他人也是如此,这样就不用傻站着排队了,这就是链式关系的现实样例。在计算机里,这个号牌就是指针,这个指针指向你坐的位子,这样就可以通过号牌找到你坐的位置。

    对你有帮助或者学到东西,点个赞呗~~来个3连也可以啊。

  • 相关阅读:
    接口
    多态
    static的用法
    Person类中多个构造方法和测试
    曹操外卖实现功能
    曹操外卖数据表设计
    java中 try catch finally和return联合使用时,代码执行顺序的小细节
    GenerationType四中类型
    spring boot
    VMware修改为静态ip
  • 原文地址:https://www.cnblogs.com/ma-nong01/p/14323410.html
Copyright © 2020-2023  润新知