首页 > 其他分享 >数据结构的两个层次

数据结构的两个层次

时间:2023-11-09 16:34:42浏览次数:41  
标签:存储 两个 层次 元素 逻辑 数据结构 数据 结构

  1. 逻辑结构
  • 描述数据元素之间的逻辑关系
  • 与数据的存储无关,独立于计算机
  • 是从具体问题抽象出来的数学模型

    2.物理结构(存储结构)

  • 数据元素及其关系在计算机存储器中的结构(存储方式)
  • 是数据结构在计算机的表示

 

  关系:

  • 存储结构是逻辑关系的映象与元素本身的映象
  • 逻辑结构是数据结构的抽象,存储结构是数据结构的实现
  • 两者综合起来建立了数据元素之间1的结构关系

  逻辑结构的种类

  • 线性结构:

  有且只有一个开始和一个终端结点,并且所有节点最多只有一个直接前驱和一个直接的后继。如:线性表,栈,队列,串等。

  

 

  • 非线性结构:

  一个结点可能有多个直接前驱和直接后继 。如:树,图。

  

 

   存储结构的种类:

  • 顺序存储结构:顺序存储结构将数据元素按照逻辑顺序依次存放在一片连续的存储空间中。这种结构适合于元素数量不多的情况,并且可以直接通过索引来访问元素。

  

        

  数据元素存放在地址连续的存储单元里,数据间的逻辑关系和物理关系一致,不方便插入和删除。内存空间是连续的

 

 

  • 链式存储结构:链式存储结构通过每个元素中的指针来链接其他元素。这种结构可以更有效地利用存储空间,但访问元素需要更多的时间,因为需要先找到正确的指针。

  

           

   数据元素存放在任意的存储单元里,这组存储单元可以连续也可以不连续,需要一个指针存放数据元素的地址。

 

  • 索引存储结构:索引存储结构通过索引表来快速定位到数据元素在内存中的位置。这种结构适用于元素数量较多的情况,但会占用额外的存储空间。

  

           

   创建唯一性索引,保证数据库表中每一行数据的唯一性,加快数据的检索速度。

 

  • 散列存储结构:散列存储结构通过散列函数将元素的键值映射到内存中的位置。这种结构可以实现元素的快速访问,但需要解决散列冲突的问题。

   散列表也被称为hash表,它是一种用于以常数平均时间执行插入、删除和查找的技术。

   总结和个人体会:

    对于逻辑结构和物理结构的理解,我认为需要明确这两者的关系。逻辑结构主要关注数据元素之间的逻辑关系,是数据在人们脑海中的表示方式;而物理结构则关注数据在计算机内存中的存储和访问方式。这              两者是相互独立的,也就是说,逻辑结构可以采取多种物理结构的实现方式。

 

标签:存储,两个,层次,元素,逻辑,数据结构,数据,结构
From: https://www.cnblogs.com/one-1/p/17822128.html

相关文章

  • C#语法中一个问号(?)和两个问号(??)的运算符
    (1)、C#语法中一个个问号(?)的运算符是指:可以为null的类型。 (2)、C#语法中两个问号(??)的运算符是指null合并运算符,合并运算符为类型转换定义了一个预设值,以防可空类型的值为Null。           ?? 运算符称为null合并运算符,用于定义可以为null值的类型和引用类......
  • mysql-utilities对比两个库数据一致性
    1.安装mysql-utilities首先yum源安装python,之后根据python版本下载安装mysql-connector-pythonyuminstallpythonpython--versionpython2.6.6下载地址:https://downloads.mysql.com/archives/c-python/rpm-ivhmysql-connector-python-2.1.6-1.el6.x86_64.rpmwhichpython之后......
  • 累计求和与条件累计求和,两个案例看出你的职场应变能力!
    1职场实例小伙伴们大家好,今天我们来讲解两个案例。分别是普通的累计求和、与分条件累计求和。两种工作场景在职场中是经常遇到的。我们往往可以通过这些经典的职场案例,衡量出我们对Excel的基础知识运用能力以及对实战的应变能力。如下图所示:是一张季度销量表,A列为季度数据,B列为季度......
  • 一台电脑生成两个ssh,绑定两个GitHub账号
    背景一般一台电脑账号生成一个ssh绑定一个GitHub,即一一对应的关系!我之前有一个账号也配置了ssh,但是我想经营两个GitHub账号,当我用httpsurlclone新账号的仓库时,直接超时。所以想起了配置ssh。于是有了今天这篇博客!实操我又生成了一个ssh。也配置到了新的账号上。再次clone使用ss......
  • 二叉树前中后序遍历(递归和非递归)+层次遍历
    直接看代码啦!前中后指的是跟被访问的次序!递归很好理解,重点是非递归!!!1#define_CRT_SECURE_NO_WARNINGS2#include<iostream>3#include<fstream>4usingnamespacestd;56typedefstructTreeNode7{8intdata;9intflag;10str......
  • 考研_数据结构
    绪论1.算法原地工作是指辅助空间不随着数据规模的增大而增大,不是说不需要辅助空间2.栈和队列属于逻辑结构而非存储结构,它们的实现才属于存储结构3.数据元素是数据的基本单位,数据项是数据的最小单位4.程序需要算法和数据结构结合在一起才能实现,仅仅把算法用某种计算机语言来描述......
  • 关于Java使用Arrays类的equals()函数比较两个数组是否相等功能的实战
    关键词:文件流问题:二进制流文件丢失解决方法:java.util.Arrays.equals(byte1[],byte2[])分析:Arrays.equals()函数比较的是数组的内容而不是引用。也就是说,只有数组的元素内容相同,并且顺序也相同,才会返回true。      如果数组的元素内容相同但顺序不同,或者数组的引用......
  • 使用 TortoiseGit 在两个项目之间共享代码(cherry-pick)
    需求:项目A需要新增项目B的部分代码,要求不变更commitmessage信息做法项目A新增上游Remote,RemoteURL为项目B的URL新增方式:依次点击项目A文件夹内右键→TortoiseGit→Settings→Git→Remote,输入上游名称和URL点击确定后,TortoiseGit会询问是否为其禁用T......
  • 数据结构三元顺序表稀疏矩阵的加法程序
    三元顺序表稀疏矩阵的加法三元顺序表是什么?稀疏矩阵又是什么?稀疏矩阵的加法和普通矩阵的加法有什么不同?你看到这些是不是都有些困惑。那么现在我们就来讲讲这些陌生的东西。三元顺序表将稀疏矩阵非零元素对应的三元组所构成的集合,按照行优先的顺序排列成一个线性表,毫无疑问......
  • 88. 合并两个有序数组
    目录题目题解、逆序双指针题目给你两个按非递减顺序排列的整数数组 nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums......