重学数据结构之第一章-数据结构绪论

1、数据结构的定义是什么?

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

2、数据结构是怎么起源的?

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

1968年,Donald E. Knuth教授在其所写的《计算机程序设计艺术》这本书中,对数据的逻辑结构和存储结构(物理结构)及其操作进行了系统的阐释,这之后数据结构开始组哟为一门独立课程开始进行教授。

70年代初,出现了大型程序,软件也开始相对独立, 结构程序设计成为程序设计方法学的主要内容,人们越来越重视“数据结构”,认为程序设计的实质是对确定问题选择一种好的结构,加上设计一种好的算法。可见,数据结构在程序设计当中占据了重要的地位。

3、数据结构中我们必须要掌握哪些概念和术语?

3.1、 数据

数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别的,并输入给计算机处理的符合集合。

如:数值类型(整型、实型),非数值类型(字符、声音、图像、视频等)

也就是说,我们说的数据其实就是符号,而这些符号需要具备两个前提:

  • 可以输入到计算机中
  • 能被计算机程序处理

3.2、数据元素

数据元素是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。

比如:马、牛、羊、鸡、猪、狗等动物就属于畜禽类的数据元素。

3.3、数据项

数据项:一个数据元素可以由若干个数据项组成,是数据不可分割的最小单位
比如:畜禽类的动物都具有:眼、耳、鼻、嘴、腿这些数据项,如人具有,姓名、性别、年龄、身份、邮箱、电话号码这些数据项。
与Java中定义一个实体对象的属性是一个道理。

3.4、数据对象

数据对象是性质相同的数据元素的集合,是数据的子集

什么是性质相同?
是指数据元素具有相同数量类型的数据项,比如畜禽类中的动物都具有眼、耳、嘴、鼻这些相同的数据项。

既然数据对象是数据的子集,在实际应用中,我们都将数据对象称之为数据。

4、数据结构到底有那些结构?

按照全局观点,我们把数据结构分为:逻辑结构和物理结构(存储结构)。

其中,光有全局观点还不够,我们还要继续细化为更具体的知识点。

4.1、逻辑结构

逻辑结构是指数据对象数据元素之间的相互关系。
逻辑结构主要分为四种:

4.1.1、集合结构

集合结构是指数据对象中的数据元素除了同属于一个集合外,它们之间没有其他关系。各个数据元素是平等的。类似于数学中的集合。

4.1.2、线性结构

线性结构:线性结构中的数据元素之间是一对一的关系。

4.1.3、树形结构

树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。

4.1.4、图形结构

图形结构:图形结构的数据元素是多对对的关系。

4.2、物理结构

物理结构也叫做存储结构。
物理结构是指数据的逻辑结构在计算机中的存储形式。
存储形式对应着存储器,存储器包含,如硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。
数据的存储结构应正确反映数据元素之间的逻辑关系,这才是最为关键的,如何存储数据元素之间的逻辑关系,是现实物理结构的重点和难点。

4.2.1、顺序存储结构

顺序存储结构:是把数据元素放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
举个实例:排队占位,大家都排好顺序,每个人占用一小段空间,大家谁也别插谁的队。

4.2.2、链式存储结构

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

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

5、抽象数据类型

数据类型:是指一组性质相同的值的集合上的一些操作的总称。
例如:
原子类型,是不可以再分解的基本类型,包含整型、实型、字符型等;
结构类型:由若干个类型组合而成,是可以再分解的,例如,整型数组是由若干整型数据组成的。
抽象数据类型:是指一个数学模型及定义在该模型上的一组操作。
抽象的意义在于数据类型的数学抽象特性。




原创不易,求个关注。

在这里插入图片描述

微信公众号: 一粒尘埃的漫旅

里面有很多想对大家说的话,就像和朋友聊聊天。
写代码,做设计,聊生活,聊工作,聊职场。
我见到的世界是什么样子的?
搜索关注我吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值