【数据结构与算法】数据结构的基本概念

数据

数据是信息的载体,是计算机程序处理的原始材料。是能够输入到计算机中,并被计算机程序识别和处理的符号的集合。

数据元素

数据是组成数据的基本单位,通常作为一个整体进行考虑和处理。
在大多数情况下,一个数据元素就是一个记录实体
例如:在一个学生信息管理系统中,一个学生的所有信息(学号、姓名、成绩)构成一个数据元素。

数据项

数据项是构成数据元素的、不可再分的最小单位
例如:上面那个“学生”数据元素,就是由“学号”、“姓名”、“成绩”这几个数据项组成的。

数据对象

数据对象是性质相同的数据元素的集合,是数据的一个子集
例如:所有学生的数据元素的集合,就构成了一个“学生”数据对象。所有整数的集合,构成了一个“整数”数据对象。

数据结构

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

数据结构的三要素

  1. 逻辑结构——数据元素之间的逻辑关系是什么?

    1. 集合:各个元素属于同一个集合
      在这里插入图片描述

    2. 线性结构:数据之间是一对一关系。除了第一个元素,所有元素都有唯一前驱;除了最后一个元素,所有元素都有唯一后继
      在这里插入图片描述

    3. 树形结构:数据之间是一对多的关系。
      在这里插入图片描述

    4. 图状结构(网状结构):数据元素之间是多对多的关系。
      在这里插入图片描述

  2. 物理结构(存储结构)——如何用计算机表示数据元素的逻辑关系?

    1. 顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。
      在这里插入图片描述
    2. 链式存储:逻辑上相邻的元素可以在物理位置上不相邻。借助指示元素存储位置的指针来表示元素之间的逻辑关系。
      在这里插入图片描述
    3. 索引存储:在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项的一般形式是(关键字,地址)。
      在这里插入图片描述
    4. 散列存储(哈希存储): 根据元素的关键字直接计算出元素的存储地址。
    5. 需要理解的点:
      • 如果采用顺序存储,则各个数据元素之间的物理地址是连续的,如果采用非顺序存储,则各个数据元素之间的物理地址可以是离散的.
      • 数据的存储结构会影响存储空间分配的方便程度.
      • 数据的存储结构会影响对数据运算的速度.
  3. 数据的运算——施加在数据上的运算,包括数据的定义与实现

    • 运算的定义:是针对逻辑结构的,指出运算的功能.
    • 运算的实现:是针对存储结构的,指出运算的具体操作步骤.

数据类型

数据类型:是一个值的集合和定义在此集合上的一组操作的总称.

  1. 原子类型:其值不可再分的数据类型.
    在这里插入图片描述
  2. 结构类型:其值可以再分解为若干成分的数据类型.
    在这里插入图片描述

抽象数据类型(ADT)

  • 概念
    • 抽象数据类型(ADT)= 数据组织方式 + 相关操作
    • 使用数学语言描述逻辑结构和运算,与实现无关
  • 三要素关系
    • 逻辑结构:ADT定义的核心
    • 数据运算:ADT定义的组成运算
    • 存储结构:实现时才要考虑

知识回顾与重要考点

  • 概念层级:数据 → 数据对象(同性质元素集合) → 数据元素(含数据项)
  • 数据结构核心:
    • 关注元素间的逻辑关系
    • 必须定义相关运算/操作
  • ADT定位:
    • 确定逻辑结构和运算
    • 只有实现数据结构时才考虑存储结构
  • 存储影响:
    • 不同存储结构导致运算实现方式不同
    • 只有确认存储结构后才能完整实现数据结构
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值