数据结构和算法绪论

数据结构绪论

让编程改变世界

Change the world by program


数据结构和算法绪论

数据结构和算法这门计算机必修课历来无论在哪个学校,都是无比乏味和催人入睡的。

因为很多时候,考研玩的不是智商,其实就是一个人投入的时间而已。

什么是数据结构?

数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。

这样的官方陈词不是小甲鱼的风格哈,如果是小甲鱼,会告诉你数据结构事实上就是这样子:

程序设计 = 数据结构 + 算法

再简单的来说数据结构就是关系,没错,就是数据元素相互之间存在的一种或多种特定关系的集合

传统上,我们把数据结构分为逻辑结构和物理结构。

逻辑结构:是指数据对象中数据元素之间的相互关系,也是我们今后最需要关注和讨论的问题。

物理结构:是指数据的逻辑结构在计算机中的存储形式。

逻辑结构

好,那让小甲鱼图文并茂地给大家介绍下四大逻辑结构吧:(此处可以有掌声)

集合结构

集合结构

线性结构

线性结构

树形结构

树形结构

图形结构

图形结构

物理结构

说完逻辑结构,我们再来说说数据的物理结构。

根据物理结构的定义,我们实际上研究的的就是如何把数据元素存储到计算机的存储器中。

存储器主要是针对内存而言的,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。

数据元素的存储结构形式有两种:顺序存储和链式存储。

顺序存储结构

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

例如我们编程语言的数组结构就是这样滴。

顺序存储结构

链式存储结构

从顺序存储结构我们想到了日常生活中我们的排队,有木有?但现实生活中,我们发觉也并不完全如此。

例如有人排着排着她内急,她要被迫离开队伍去上洗手间,还有人不遵守基本基本道德规范他插队,这些情况会大破存储存储结构的基本原则。

面对这样时常要变化的结构,顺序存储是不科学的,那么就该让链式存储结构露面了。

现在如银行、医院等地方,都设置了排队系统。也就是每个人去了,先领一个号,等着叫号,叫到你的时候就可以去存一百块给小甲鱼或看病。

而在等待的时候,你爱在哪在哪,可以坐着、站着或者四处看看美眉,只要你及时回来就行。

这些情况下,你关注的是前一个号有没有被叫到,叫到了,下一个就该轮到你了。

链式存储结构就是这样的原理,相比起顺序存储结构就灵活多了。

链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。

很显然,这样说的话链式存储结构的数据元素存储关系并不能反映其逻辑关系,因此需要用一个指针存放数据元素的地址,这样子通过地址就可以找到相关联数据元素的位置。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值