数据结构与算法 01:基础名词解释 & 基本概念

简介: 数据结构与算法 01:基础名词解释 & 基本概念

基础名词解释


  • 数据:程序的操作对象,用于描述客观事物,有以下两个特点
  • 可以输入到计算机
  • 可以被计算机处理
  • 数据元素:组成数据对象的基本单元
  • 数据项:一个数据元素由若干数据项组成
  • 数据对象性质相同数据元素集合,类似于数组


以上4种名词之间的关系如下图所示:

image.png


  • 结构:数据元素之间不是独立的,存在特定的关系,这些关系即是结构
  • 数据结构:指的是相互之间存在一种或多种特定关系数据元素集合
  • 算法:对特定问题求解步骤的一种描述
  • 程序设计 = 数据结构 + 算法


基本概念


逻辑结构 & 物理结构


一般从两个视角对数据进行描述,一个是逻辑结构,一个是物理结构


  • 逻辑结构:描述的是数据与数据之间的逻辑关系
  • 物理结构:描述的是数据内存存储的形式


逻辑结构


逻辑结构主要有以下4种:


  • 集合结构:集合中的所有元素除了同属于一个集合外,他们之间没有其他关系,如下图所示

image.png


  • 线性结构:数据之间的关系是一对一的,所有符合一对一的都是线性结构,如下图所示
    image.png


  • 数组链表 是线性结构


  • 队列特殊线性结构,区别在于读取方式


  • 队列先进先出,即FIFO
  • 先进后出,即FILO


  • 字符串特殊线性结构,存储内容只能是字符串


  • 树形结构:数据之间的存在一对多的层次关系,如下所示

image.png

  • 二叉树B+B-红黑树哈西曼树 都是属于树形结构
  • 图形结构:数据之间存在多对多的关系,如下图所示

image.png


物理结构


数据的物理结构就是数据存储在磁盘中的方式,这里的磁盘指的是计算机的内存,主要研究的是数据结构在计算机中的实现方式,包括数据结构中的元素的表示及元素间关系的表示,有以下两种


  • 顺序存储结构逻辑相邻的数据元素,物理存储位置也相邻,顺序表的存储空间需要预先分配,且存储空间是一段的连续的内存,顺序存储结构如下图所示

image.png


  • 优点


  • 方法简单,易实现,因为在各种高级语言中都有数组
  • 顺序存储结构具有随机访问的特点


  • 缺点


  • 顺序表中做插入/删除 操作时,需要进行大量的数据移动,因此对n较大的顺序表效率低
  • 需要预先分配空间,如果空间预估过大,会导致顺序表后面的大部分空间闲置,浪费内存,如果预估过小,又会造成溢出


  • 链式存储结构逻辑上相邻的数据元素,其物理存储位置不一定相邻,它使用指针实现元素之间的逻辑关系,且链表的存储空间动态分布的,链式存储结构

     如下图所示


image.png

  • 优点:


  • 不需要提前开辟一段连续的空间,其空间是动态分配
  • 插入、删除操作方便,只需要改变指针的指向,不需要移动数据元素


  • 缺点


  • 链表不能随机存取元素,如果在链式存储中遍历,需要遍历所有的元素


相关文章
|
8月前
|
机器学习/深度学习 算法 数据可视化
近端策略优化算法PPO的核心概念和PyTorch实现详解
本文深入解析了近端策略优化(PPO)算法的核心原理,并基于PyTorch框架实现了完整的强化学习训练流程。通过Lunar Lander环境展示了算法的全过程,涵盖环境交互、优势函数计算、策略更新等关键模块。内容理论与实践结合,适合希望掌握PPO算法及其实现的读者。
1285 2
近端策略优化算法PPO的核心概念和PyTorch实现详解
|
存储 算法
数据结构与算法学习二二:图的学习、图的概念、图的深度和广度优先遍历
这篇文章详细介绍了图的概念、表示方式以及深度优先遍历和广度优先遍历的算法实现。
354 1
数据结构与算法学习二二:图的学习、图的概念、图的深度和广度优先遍历
|
算法 数据处理 C语言
C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合
本文深入解析了C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合,旨在帮助读者掌握这一高效的数据处理方法。
711 1
|
存储 算法 Linux
【数据结构和算法】---二叉树(1)--树概念及结构
【数据结构和算法】---二叉树(1)--树概念及结构
290 0
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
318 1
|
存储
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(二)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
155 2
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(三)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
110 1
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现(一)
【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现
227 1
|
C语言
数据结构基础详解(C语言):图的基本概念_无向图_有向图_子图_生成树_生成森林_完全图
本文介绍了图的基本概念,包括图的定义、无向图与有向图、简单图与多重图等,并解释了顶点度、路径、连通性等相关术语。此外还讨论了子图、生成树、带权图及几种特殊形态的图,如完全图和树等。通过这些概念,读者可以更好地理解图论的基础知识。
1433 8
|
存储
【数据结构】树和二叉树的概念及结构
数据结构——树和二叉树的概念及结构
452 3
【数据结构】树和二叉树的概念及结构

热门文章

最新文章