数据结构入门概述笔记,结合英雄联盟游戏举例,通俗易懂!

数据结构入门

已同步微信公众号乐享Coding,欢迎关注!

程序=数据结构算法

不知各位有没有玩过一款名为英雄联盟(LOL)的游戏,或者王者荣耀的MOBA类游戏,因为这是数据结构的第一篇文章入门,只是让大家能够对数据结构有个初步的通感,本篇文章理解需要有王者荣耀,英雄联盟这类游戏的试玩经验。

数据结构

  • 相互之间存在一种多种特定关系的数据元素的集合

在游戏中,我们把控制英雄作为一个程序,那么英雄可以作为一个数据对象,如上单英雄,那我需要一个地图(部分内存空间)来存储它,但是由于他是上单英雄,它需要上路这样的地形(数据结构)因为上单英雄不止一个,可以是多个,但是大多都依赖上单这个地形。然而,光有地形还不够,我们还需要研究对面的英雄的技能怎么克制我,自己如何出装,技能如何释放等等(算法),这样才能在游戏中打败它,否则,就会坑到被队友无脑喷,装备出的所用金币越少,价值大(时间效率高),我们的英雄才能更好的击杀对手,从而拿到First blood

总结如下:

术语例子
数据元素(组成数据,有一定意义的基本单位,可以由很多数据项组成也被称为记录)某个具体英雄
数据结构(相互之间存在一种或多种特定关系的数据元素的集合。)地形
算法(解决特定问题求解步骤的描述)策略
数据项(数据元素的属性)英雄的属性
数据(描述客观事物的符号,是计算机可以操作的对象,能够被识别并输入给计算机处理)英雄
数据对象(性质相同的数据元素的集合,是数据的子集)上单英雄

关系图解如下:

英雄
数据

提问:如何去选择数据结构去存储数据?

回答:这里还是以游戏为例,英雄联盟的地图共有4种地形,上单,中单,下路,打野,而这些地形都存储在一个地图上,每个地形都有对应位置的英雄,如拿我近期玩的比较多的上单英雄武器大师贾克斯(王者荣耀花木兰)为例,在游戏中他们被标为上单英雄,但是你可以选择他们去下路,去中路,也可以打野,

同样,存储数据也不一定只能用一种数据结构,现实就是这样的情况比较少,选择去上路的原因极大的是依靠上路的地形可以为自己建立一个很大的优势,而去别路或许就天生具有劣势,那么我们为什么不去选择上路这种地形呢?存储一些数据我们可以使用单向链表存储,也可用顺序存储,但是到底改选哪一种呢?这就需要根据具体的功能而定,如想要查询快的话(想一些购物的商品网页),当然是顺序存储占优势,速度更快,因为每一个都有索引,根据索引就能返回查询的数据。

相比以上的例子,数据结构可能知识点会更多些,因为计算机中的数据元素种类很多,数量巨大,依赖关系十分复杂,为解决这个问题,数据结构分为逻辑结构物理结构

逻辑结构

定义:数据对象中数据元素之间的相互关系。

集合结构数学学过,不能重复,各个平等
线性结构一对一,糖葫芦
树形结构一对多,有层次,倒着的树
图形结构多对多,网状结构
  • 逻辑图象

    集合

    线性结构

    树形结构

    图形结构

如何去理解逻辑结构

相信各位都学过物理,画过电路图,电路图其实就是电路的逻辑结构,我们画电路图就是为了减少无关影响,更加注重逻辑,还有一个例子就是质点,如图:

物理结构显而易见了,就是电路实际的样子,如图:

物理结构

定义:数据的逻辑结构在计算机中的储存形式.

顺序存储结构连续(one by one)
链式存储结构不连续,数据中包含指针,指向下一数据地址

抽象数据类型

数据类型(官方):一组性质相同的集合及定义在此集合上的一些操作的总称。

​ 通俗:有范围的数据及操作规范。

抽象数据类型(官方):指一个数学模型及定义在该模型上的一组操作。

​ 通俗:可以自定义的数据类型

描述抽象数据类型
ADT 抽象数据类型名
Data
	数据元素之间逻辑关系的定义
Operation
	操作1
	操作结果描述
	操作2
	......
	操作n
endDAT

举例:一个游戏人物(如马里奥)在初始中只有跳,跑的操作,但是有的公司这个人物可能需要打枪的动作,有的公司这个人物可能需要趴下的动作,因此自定义的抽象数据类型就很重要!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Steve_hanhaiLong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值