数据结构
相互之间存在一种或多种特定关系的数据元素的集合。
简单来说,就是数据中的元素之间存在着某种关系(比如分子结构,就是说组成分子的原子之间的排列方式)
严格来说,数据结构是指各个组成部分相互搭配和排列的方式
数据结构的起源
数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。
计算机中的数据
计算机中的数据是啥?
描述客观事物的符号 / 计算机可操作的对象
能被计算机识别并输入给计算机处理的符号集合
数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。
计算机中的数据需具备两个条件:
- 可以输入到计算机中
- 能被计算机程序处理
数据计算方式:
- 整型、实型等数值类型 —> 可进行数值计算
- 字符数据类型(声音、图像、视频等) —> 可通过编码的方式变成字符数据来处理。
数据元素
计算机中,数据元素并不是孤立、杂乱无序存在的,而是具有内在联系的数据集合。
数据元素之间存在的一种或多种特定关系,也就是数据的组织形式。
什么是数据元素?
在计算机中通常作为整体处理,也被称为记录。
生活中的例子什么是数据元素?
人类的数据元素 — 人
畜类的数据元素 — 牛、马、羊、鸡、猪、狗等动物
数据项
1.一个数据元素由若干个数据项组成。
2.数据项定义为数据中的最小单位
例子:
- 比如人这样的数据元素可以有:眼、鼻、耳、嘴、手、脚这些数据项
- 也有姓名、年龄、身高、体重、性别、出生地址、联系电话等数据项
数据对象
什么是数据对象?
性质相同的数据元素的集合,数据的子集
数据元素具有相同数量和类型的数据项
逻辑结构与物理结构
数据结构又分为:逻辑结构和物理结构
逻辑结构
什么是逻辑结构?
简单来说,逻辑结构是指数据对象中数据元素之间的相互关系
逻辑结构又分为四种
- 1.集合结构
- 2.线性结构
- 3.树形结构
- 4.图形结构
集合结构
- 集合结构中的数据元素除了同属于一个集合外,之间没有其他关系,各个数据元素之间是“平等”的
- 数据结构中的集合关系就类似于数学中的集合。
线性结构
- 线性结构中的数据元素之间是一对一的关系
树形结构
- 树形结构中的数据元素之间是一对多的层次关系
图形结构
- 图形结构的数据元素是多对多的关系
物理结构
- 物理结构也叫存储结构,数据的逻辑结构在计算机中的存储形式
如何把数据元素储蓄到计算机的存储器中。
数据元素的存储结构形式
数据元素的存储结构形式分为:顺序存储、链式存储
顺序存储结构
什么是顺序存储结构?
数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致
例子:
排队占位、按先后顺序排列,计算机语言中数组就是这种顺序存储结构。
链式存储结构
什么是链式存储结构?
数据元素存放在任意的存储结构单元里,这组存储单元可以是连续的,也可以是不连续的。
链式结构更加灵活、数据存在哪里不重要,只要有一个指针放了相应的地址就能找到它。
为什么需要链式存储结构呢?
因为数据元素的存储关系并不能反映其逻辑关系,因此需要用一个指针存放数据元素的地址,通过地址就可以找到相关联数据元素的位置,也就是链式存储数据结构。
逻辑结构和物理结构解决了什么问题?
逻辑结构:
为了解决具体某个问题,怼问题理解的基础上,选择一个合适的数据结构来表示数据元素之间的逻辑关系。(面向问题而存在)
物理结构:
面向计算机而存在,基本目标是将数据及其逻辑关系存储到计算机的内心中。