数据结构学习笔记之基本概念和术语01
数据,数据元素,数据项和数据对象
数据(Data)是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称.
数据元素(Data Element)是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理.也称为元素,记录等.数据元素用于完整地描述一个对象,如一名学生的成绩记录.
数据项(Data Item)是组成数据元素的,有独立含义的,不可分割的最小单位.例如,学生基本信息表中的学号,姓名,性别等都是数据项.
数据对象(Data Object)是性质相同的数据元素的集合,是数据的一个子集.例如,学生基本信息表也可以是一个数据对象.
数据结构
数据结构(Data Structure)是相互之间存在一种或多种特定关系的数据元素的集合.换句话说,数据结构是带有"结构"的数据元素的集合,"结构"就是指数据元素之间的关系.
数据结构包括逻辑结构和存储结构两个层次.
逻辑结构是从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的.因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型.逻辑结构有两个要素:一个是数据元素;二是关系.数据元素的含义如前所述,关系是指数据元素之间的逻辑关系.根据数据元素之间关系的不同特性,通常有四类基本结构,集合结构,线性结构,树结构和图结构.它们的复杂程度依次递进.
下面四种结构中所举例的示例是以某班学生作为数据对象(数据元素是学生的学籍档案记录),来分别考察数据元素之间的关系.
(1)集合结构 数据元素之间除了"属于同一集合"的关系外,别无其他关系.例如,确定一名学生是否为班级成员,只需要将班级看作一个集合结构.
(2)线性结构 数据元素之间存在一对一的关系.例如,将学生信息数据按照其入学报道的时间先后顺序进行排列,将组成一个线性结构.
(3)树结构 数据元素之间存在一对多的关系.例如,班级的管理体系中,班长管理多个组长,每位组长管理多名组员,从而构成树形结构.
(4)图结构 数据元素之间存在多对多的关系.例如,多为同学之间的朋友关系,任何两位同学都可以是朋友,从而构成图状结构或网状结构.
其中集合结构,树结构和图结构都属于非线性结构.
线性结构包括线性表(典型的线性结构),栈和队列(具有特殊限制的线性表,数据操作只能在表的一端或者两端进行),字符串(也是特殊的线性表,其特殊性表现在它的数据元素仅由一个字符组成),数组(是线性表的推广,它的数据元素是一个线性表),广义表(也是线性表的推广,它的数据元素是一个线性表,但不同构,即或者是单元素,或者是线性表).
非线性结构包括树(具有多个分支的层次结构),和二叉树(具有两个分支的层次结构),有向图(一种图结构,边是顶点的有序对)和无向图(另一种图结构,边市顶点的无序对).
存储结构 数据对象在计算机中的存储表示称为数据的存储结构,也称为物理结构.数据元素在计算机中有两种基本的存储结构,分别是顺序存储结构和链式存储结构.
(1)顺序存储结构(连续空间)
顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述.
(2)链式存储结构(离散空间)
顺序存储结构要求所有的元素依次存放在一片连续的空间中,二链式存储结构,无需占用一整块存储空间.但为了表示结点之间的关系,需要给每个结点附加指针字段,用于存储后继元素的存储地址.所以链式存储结构通常借助程序设计语言的指针类型来描述.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话