数据结构 | 数据结构的“基本概念”和“术语”

2023-09-20 23:49:14

1.数据 (Data)

  • 数据是指所有能 输入到计算机中并被计算机程序处理的符号表示

  • 数据是信息的载体、能被计算机识别存储加工

  • 就是被计算机加工处理对象

  • 数据分为:数值数据非数值数据

    • 数值数据:包括整数实数等,主要用于科学计算财会商务处理等。

      数值型数据能进行算术运算。

    • 非数值数据:包括文字符号图形动画声音

2.数据元素 (Data Element )

  • 数据元素 (也被称为: 结点/记录/顶点) ,是 数据基本单位
  • 数据元素在计算中程序中通常作为一个整体进行考虑和处理
  • 一个数据元素可以由若干个 数据项 组成。

3.数据项 (Date Item)

  • 数据项 : 构成数据元素的不可分割的 最小单位

4.数据 、数据元素、数据项三者之间的关系

  • 数据 > 数据元素> 数据项

例如:学生表 > 个人记录 > 学号、姓名

  • 数据是由数据元素组成的的,数据元素是由数据项组成的。

5.数据对象 (Data Object )

  • 数据对象 : 是性质相同的数据元素集合数据的一个子集

    如:整数数据对象集合N= {0,±1,±2,…}

    字母字符数据对象集合C={‘A’,‘B’,… ,‘Z’}

6.数据结构 (Data Structure)

6.1数据结构 (Data Structure) 的种类 / 两个层次:
  • 数据结构 :分为 数据结构的逻辑结构数据结构的物理结构
逻辑结构
  • 逻辑结构 : 描述数据元素之间的逻辑关系
  • 与数据的存储无关,独立于计算机。
  • 是从具体问题抽象出来的数学模型
逻辑结构的“分类”
  • 划分方法一: 将逻辑结构划分为 两种
    • (1)线性结构有且仅一个开始一个终端结点。并且所有结点最多只有一个直接前趋一个直接后继。 例如:线性表、栈、队列、串 (一般1:1关系)
    • (2)非线性结构 :一个结点可能有多个直接前趋多个直接后继。(是1:n关系、m:n关系) 例如:
  • 划分方法二四类基本逻辑结构 / 将逻辑结构划分为 四种
    • (1)集合结构 :结构中的数据元素之间除了同属于一个集合的关系外无任何关系
    • (2)线性结构 :结构中的数据元素之间存在一对一线性关系
    • (3)树型结构 :结构中的数据元素之间存在一对多层次关系
    • (4)图型结构 / 网状结构 :结构中的数据元素之间存在多对多任意关系
存储结构 (物理结构)
  • 数据元素及其关系在计算机 存储器 中的结构(存储方式
  • 数据结构计算机中的表示。
存储结构 (物理结构)的种类
  • 顺序存储结构
    • 用一组连续存储单元依次存储数据元素数据元素之间的逻辑关系由元素的存储位置表示
    • C语言中用数组来实现顺序存储结构。 (用连续的存储单元进行存储)。
    • 顺序存储结构,
  • 链式存储结构
    • 用一组任意存储单元存储数据元素,数据元素之间的逻辑关系指针表示。
      不是用连续的存储单位进行存储
    • C语言中用指针 (地址) 实现链式存储结构
    • 链式存储结构,我们在存储每一个元素本身,还存储了下一个元素的地址
  • 索引存储结构
    • 在存储结点信息时,还建立了附加的索引表
  • 散列存储结构
    • 根据结点关键字直接计算出该结点存储地址
  • 散列存储结构

7.“数据元素” 和 “数据对象” 的区别

  • 数据元素:组成数据基本单位。与数据的关系:是集合个体
  • 数据对象:性质相同数据元素集合。与数据的关系 :集合子集
更多推荐

MySQL学习系列(11)-每天学习10个知识

目录1.数据库设计的关键因素2.使用存储过程和函数来提高性能和可重用性3.MySQL性能优化4.使用视图简化查询和提供数据安全性5.数据库备份和恢复策略的重要性和实践经验6.在分布式系统中保证数据一致性和可用性7.理解MySQL的复制和其在实际应用中的作用8.使用游标进行分页查询和遍历查询结果9.使用窗口函数10.数据

Redis 面试常见问答

本文出自:https://thinkinjava.cn作者:莫那鲁道1.什么是缓存雪崩?怎么解决?一般而言,我们会利用缓存来缓冲对数据库的冲击,假如缓存无法正常工作,所有的请求便会直接发送至数据库,进而导致数据库崩溃,从而导致整个系统崩溃。如何解决呢?2种策略(同时使用):对缓存做高可用,防止缓存宕机使用断路器,如果缓

深入学习 Redis - 分布式锁底层实现原理,以及实际应用

目录一、Redis分布式锁1.1、什么是分布式锁1.2、分布式锁的基础实现1.2.1、引入场景1.2.2、基础实现思想1.2.3、引入setnx1.3、引入过期时间1.4、引入校验id1.5、引入lua脚本1.5.1、引入lua脚本的原因1.5.2、lua脚本介绍1.6、过期时间续约问题(看门狗WatchDog)1.7

十四、流式编程(2)

本章概要中间操作跟踪和调试流元素排序移除元素应用函数到元素在map()中组合流中间操作中间操作用于从一个流中获取对象,并将对象作为另一个流从后端输出,以连接到其他操作。跟踪和调试peek()操作的目的是帮助调试。它允许你无修改地查看流中的元素。代码示例:Peeking.javaclassPeeking{publicst

Docker概念通讲

目录什么是Docker?Docker的应用场景有哪些?Docker的优点有哪些?Docker与虚拟机的区别是什么?Docker的三大核心是什么?如何快速安装Docker?如何修改Docker的存储位置?Docker镜像常用管理有哪些?如何创建Docker容器?Docker在后台的标准运行过程是什么?Docker网络模式

Apollo

Apollo🍓目前市面上比较多的配置中心🍓Apollo组件🍓Apollo特性🍓Apollo服务端安装🍓部署架构🍓核心概念🍓客户端连接Apollo🍓配置发布原理代码地址:https://gitee.com/xuhx615/apollo-demo.git🍓目前市面上比较多的配置中心⭐Disconf百度开源

Dubbo3基础使用

1、Dubbo概述现在SpringCloudAlibaba比较火,用的比较多是吧,那dubbo是不是过时的呢?并不是的,以前有人把Dubbo和SpringCloud进行对比,其实两者是不同维度的,不能对比,dubbo就是一个rpc框架,SpringCloud是一个生态,里面包括很多组件,并且dubbo3也可以和Spri

【K8S系列】深入解析k8s网络插件—Weave Net

序言做一件事并不难,难的是在于坚持。坚持一下也不难,难的是坚持到底。文章标记颜色说明:黄色:重要标题红色:用来标记结论绿色:用来标记论点蓝色:用来标记论点Kubernetes(k8s)是一个容器编排平台,允许在容器中运行应用程序和服务。今天学习一下k8s网络插件-WeaveNet相关知识希望这篇文章能让你不仅有一定的收

一文总结提示工程框架,除了CoT还有ToT、GoT、AoT、SoT、PoT

夕小瑶科技说原创编译|谢年年大语言模型LLM被视为一个巨大的知识库,它可以根据你提出问题或陈述的方式来提供答案。就像人类可能会根据问题的不同提供不同的答案一样,LLM也可以根据输入的不同给出不同的答案。因此,你的问题或陈述方式就显得非常重要。如何引导大语言模型给出更恰当的答案,是最近研究的热点。经常用到的方法如让大模型

Python基础学习笔记3

深度学习实践深度学习离不开编程深度学习离不开数学分析(高等数学)、线性代数、概率论等知识,更离不开以编程为核心的动手实践。Python编程语言无论是在机器学习还是深度学习中,Python已经成为主导性的编程语言。而且,现在许多主流的深度学习框架都提供Python接口,Python被用于数据预处理、定义网络模型、执行训练

2023华数杯数学建模A题2023华数杯A 题隔热材料的结构优化控制研究

问题1问题1:该问题需要建立一个数学模型来描绘织物整体热导率与单根纤维热导率之间的关系。这个模型需要考虑织物的结构(如纤维的排列、空隙大小和分布等)以及纤维和空隙中的空气对热传导的贡献。此外,我们需要根据织物的整体热导率来逆向推算出单根纤维的热导率。解题思路:使用热传导的基础理论,结合题目给出的纤维和空气的热导率,以及

热文推荐