当前位置: 首页 > article >正文

数据结构 (1)基本概念和术语

一、基本概念

  1. 数据(Data)
    • 是对客观事物的符号表示,在计算机科学中通常指计算机程序所处理的各种对象。
    • 数据可以是数值、字符、图像、声音等任何形式的信息。
  2. 数据元素(Data Element)
    • 也称为数据项或记录,是数据的基本单位。
    • 数据元素通常由若干个数据项组成,数据项是构成数据元素的不可分割的最小单位。
  3. 数据对象(Data Object)
    • 是性质相同的数据元素的集合,是数据的一个子集。
    • 例如,一个包含所有学生学号的数据对象就是一个数据对象的实例。
  4. 数据结构(Data Structure)
    • 是指相互之间存在一种或多种特定关系的数据元素的集合。
    • 这些关系可以是集合关系、线性关系、树形关系或图形关系等。
    • 数据结构通常包含数据的逻辑结构、存储结构和操作三个方面的内容。

二、逻辑结构

  1. 集合结构(Collection)
    • 数据元素之间除了“同属于一个集合”的关系外,没有其他关系。
  2. 线性结构(Linear Structure)
    • 数据元素之间存在一对一的关系,形成一条有序的序列。
    • 常见的线性结构有数组、链表、栈和队列等。
  3. 树形结构(Tree Structure)
    • 数据元素之间存在一对多的关系,形成层次结构。
    • 常见的树形结构有二叉树、平衡二叉树、B树等。
  4. 图形结构(Graph Structure)
    • 数据元素之间存在多对多的关系,形成网状结构。
    • 图形结构常用于表示复杂的关系网络,如社交网络、交通网络等。

三、存储结构

  1. 顺序存储结构(Sequential Storage Structure)
    • 将逻辑上相邻的数据元素存储在物理位置上也相邻的存储单元中。
    • 常见的顺序存储结构有数组和顺序表等。
  2. 链式存储结构(Linked Storage Structure)
    • 通过指针将若干个数据元素串联起来,形成链表。
    • 链表中的数据元素在物理上可以不连续,但在逻辑上通过指针连接起来。
    • 常见的链式存储结构有单向链表、双向链表和循环链表等。
  3. 索引存储结构(Index Storage Structure)
    • 在存储数据元素的同时,建立附加的索引表,以便快速查找数据元素。
    • 索引存储结构常用于数据库和文件系统中。
  4. 散列存储结构(Hash Storage Structure)
    • 根据数据元素的关键字直接计算出该元素的存储地址。
    • 散列存储结构常用于快速查找和插入操作,如哈希表。

四、数据操作

  1. 创建操作(Creation Operation):用于创建数据结构,并初始化其存储结构和逻辑关系。
  2. 插入操作(Insertion Operation):将新的数据元素添加到数据结构中。
  3. 删除操作(Deletion Operation):从数据结构中删除指定的数据元素。
  4. 查找操作(Search Operation):在数据结构中查找满足特定条件的数据元素。
  5. 修改操作(Modification Operation):修改数据结构中指定数据元素的值或属性。
  6. 遍历操作(Traversal Operation):按照某种顺序依次访问数据结构中的所有数据元素。

总结

       综上所述,数据结构是计算机科学中的一个重要概念,它涉及到数据的组织、存储和管理方式。通过理解数据结构的基本概念和术语,可以更好地掌握数据结构的原理和应用,为后续的算法设计和程序开发打下坚实的基础。

 结语  

言者无罪

闻者足戒

!!!


http://www.kler.cn/a/404771.html

相关文章:

  • STM32芯片EXIT外部中断的配置与原理以及模板代码(标准库)
  • 【前端】CSS修改div滚动条样式
  • 深入理解 Java 阻塞队列:使用场景、原理与性能优化
  • 【vue】vue中.sync修饰符如何使用--详细代码对比
  • 05_Spring JdbcTemplate
  • 排序算法(三)--插入排序
  • Easyexcel(4-模板文件)
  • 【QT - 1 - 】什么是QT?
  • LeetCode —— 字母异位词分组
  • Linux 定时任务全解析
  • Spring Cloud Alibaba、Spring Cloud 与 Spring Boot各版本的对应关系
  • 【docker】docker commit 命令 将当前容器的状态保存为一个新的镜像
  • RK3588开发笔记-sata概率性不能识别问题解决
  • 05_Spring JdbcTemplate
  • 【软件开发】如何理解异地多活?
  • 网络安全的学习路线
  • mysql安装---rpm包
  • Flutter-Web首次加载时添加动画
  • [STM32]从零开始的STM32 HAL库环境搭建
  • NuGet如何支持HTTP源
  • 【鸿蒙开发】基础干货篇--6 “超简单持久化存储PersistentStorage”
  • 汽车资讯新视界:Spring Boot技术启航
  • 期权懂|期权中的行权和平仓的区别在于哪里?
  • 17. Linux下在虚拟环境中安装CUDA和CUDNN
  • 安装JDK
  • 数据跨网传输无忧:FileLink打造内外网文件传输的安全桥梁