前言
本文是对学习知识的总结,基于现有知识的基础上加上个人理解,如果有侵权,必删。
工作中CRUD了2年,是时候从头开始沉淀,一步一个脚印,做好一个合格的程序员,在代码的世界里起舞。
什么是数据结构?
要了解数据结构,首先使用文字拆分法,即数据 +结构,那什么是数据呢?
其实,数据很好理解,你的家族就可以理解为一个数据,显而易见,家族成员们之间的关系就是结构。
这是对于我们而言,对于计算机来说:
数据,是描述客观事物的符号,是所有计算机可操作的对象,是能被计算机识别,并输入给计算机处理的符号集合—《大话数据结构》
数据又分为数据元素、数据项、数据对象。
通俗来说,如果说人类是一个数据,那人就是组成数据的数据元素,人的所有相关信息都是数据项,例如姓名、年龄等。
数据项是数据不可分割的最小单位。—《大话数据结构》
结构,官方语言,组成整体的各部分的搭配和安排,通俗的说就是关系,比如你爸爸跟你是父子关系,爷爷跟你爸也是父子关系,这就是一种结构组成,即
数据元素和元素之间存在特定的关系为之结构。—《大话数据结构》
综上所述,所谓的数据结构:
是相互之间存在一种或多种特定关系的数据元素的集合。—《大话数据结构》
既然说数据结构是一种特定的关系,那不同的关系即代表不同的结构,首先,从理论和实际上区分,数据结构可为逻辑结构和物理结构。
逻辑结构
逻辑结构即数据元素之间的关系,例如你和你爸爸是父子关系,你和哥哥是兄弟关系,即
数据对象中数据元素之间的相互关系。—《大话数据结构》
逻辑结构大致分为集合、线性、树形、图形。
集合结构(人人平等,抱团行动)
集合可以理解为一个班级内的所有学生,大家都是平等的。(现在知道为啥读书都是操场集合了吧)
线性结构(老鹰捉小鸡)
线性结构比较简单,数据元素之间是一对一的,具体如下图(记得当年我也是个高手)
树形结构(绿油油的大树)
树形结构就比较容易理解了,跟它的名字一样,就是一个树干,有多个树枝,每个树枝上又有多片叶子,即一对多。(就是有点绿)
图形结构(女人逛商场,就是买!买!买!)
图形结构就是多对多的关系,大致理解成你可以向多个商家购买东西,一个商家也可以接待多个顾客的这种微妙关系。
物理结构
聊完了理论,我们聊聊实际,所谓的物理结构就是你在计算机上存储数据的形式。
通俗的来说就是住哪,怎么住,例如你爸爸在主卧住,而你在大厅打地铺。
物理结构分为顺序和链式结构。
顺序结构
强行有十个格子,对格子进行顺序编号,1-10,然后安排10个人站满格子,相应的格子编号就是人的编号。这样子要找对应的人就可以找对
应的编号即可,格子和人的逻辑关系和物理关系是一致的,这即是顺序结构。
顺序结构是把元素放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。—《大话数据结构》
链表结构
事实上,不是所有人都是按规律来的,总有人插队,还有人放弃排队的,这样动态变化的的结构,顺序结构可顶不住,所以我们需要“自由”,即
可以随意放置在任意的存储单元里,这组存储单元可以连续可以不连续。—《大话数据结构》
在快餐店吃饭的时候,你点完单,服务员会给你一个号码牌,随后你无论去哪里坐,饭菜做好了服务员会根据你的牌子给你送餐,其他人也是如此,这样就不用傻站着排队了,这就是链式关系的现实样例。在计算机里,这个号牌就是指针,这个指针指向你坐的位子,这样就可以通过号牌找到你坐的位置。
对你有帮助或者学到东西,点个赞呗~~来个3连也可以啊。