「数据结构、逻辑结构、物理结构」基本概念简析

news2024/11/16 22:30:42

前言

前言:简析数据结构、逻辑结构、物理结构。

文章目录

    • 前言
  • 一、数据结构
    • 1. 简介
    • 2. 数据
    • 3. 结构
    • 4. 分析
    • 5. 分类
      • 1)线性结构(线性表)
      • 2)树结构
      • 3)图结构
  • 二、逻辑结构与物理结构
    • 1. 为什么要有逻辑结构和物理结构?
    • 2. 数据的逻辑结构
      • 1)特点
      • 2)作用
      • 3)选择依据
    • 3. 数据的物理结构
      • 1)特点
      • 2)分类
      • 3)选择依据
        • a. 内存的空间状态
        • b. 数据的用途
    • 4. 总结

一、数据结构

1. 简介

数据结构就是相互之间存在一种或者多种特定关系的数据元素集合。换句话说数据结构就是带结构的数据元素集合

数据:指数据元素。

结构:指数据元素之间的关系。

2. 数据

数据在计算机内存中都是以二进制的形式存储。

3. 结构

结构就是数据与数据之间的关系,关系包括:一对一一对多多对多

4. 分析

1)数据在内存中的存储形式分为两种,一种是顺序排列,另一种是散乱排列

在这里插入图片描述

在这里插入图片描述

因为数据在内存中是有不同的存储形式,数据结构就是用来管理数据在内存中存储方式

根据数据的用途本身的特性来选择两种不同的存储形式。

2)数据结构是一个统称,不同的数据结构具有不同的特点。

可以将数据结构类比成容器,容器是用来盛放东西的,数据结构是用来存放数据的。

不同的数据结构相当于形状不同的容器。

5. 分类

1)线性结构(线性表)

线性结构只用来存储数据数据,并且数据都是一对一的关系,依次排列====。

线性结构包括:数组(顺序表)链表栈和队列

2)树结构

树结构不仅存储数据还要存储数据与数据之间的关系

树结构包括:普通树二叉树AVL 树红黑树

3)图结构

二、逻辑结构与物理结构

1. 为什么要有逻辑结构和物理结构?

  • 数据结构用来管理数据在内存中的存储。

  • 数据结构有很多种(数组、链表、栈、队列、树、图等),具体选用哪个数据结构来存储数据?选择的依据又是什么?

  • 选择的依据就是数据的逻辑结构物理结构

2. 数据的逻辑结构

1)特点

逻辑结构是抽象的概念。

2)作用

为了确定该选用哪一种数据结构进行数据的存储。

3)选择依据

通过 数据之间的关系来确定。

数据之间的关系包括:一对一(线性结构)一对多(树结构)多对多(图结构)

3. 数据的物理结构

1)特点

  • 物理结构是具体的,指数据在内存中实际的存储形式

  • 数组和链表是实现其它数据结构的基石。数据在内存中的存储结构本质上只有两种,一种是数组(顺序存储),另一种是链表(链式存储)。用数组实现的叫做顺序实现,用链表实现的叫链式实现。

2)分类

  • 分为集中存放数组) 和 分散存放链表)。

  • 类比举例:
    内存相当于一个大房子。
    分散存放相当于人们站在各个地方。
    集中存放相当于人们在此房子里排队站在一起。

3)选择依据

a. 内存的空间状态

集中存放要求内存中要有连续的内存空间,如果没有就只能采用分散存放。

b. 数据的用途

例如,对数据的增删改查操。

集中存放查找效率高,适用于遍历频繁。

分散存储更新(删除和添加)元素效率高,适用于更新比较频繁。

4. 总结

  • 逻辑结构决定了选用哪种数据结构。
  • 为了实现逻辑结构选用物理结构来存储。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/174798.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【leetcode合集】如何知道自己是否掌握了数组与链表?试试这几道题目吧!

目录 1.数组题目合集 1.1 leetcode.27 移除元素 1.2 leetcode.26 删除有序数组中的重复项 1.3 leetcode.88 合并两个有数数组 2.链表题目合集 2.1 leetcode.203 移除链表元素 2.2 leetcode.206 反转链表 2.3 leetcode.876 链表的中间结点 2.4 牛客 链表中倒数第k个结点…

零基础学JavaWeb开发(十七)之 mybatis(2)

5、MyBatis - 映射文件标签 5.1、映射文件的顶级元素 select:映射查询语句 insert:映射插入语句 update:映射更新语句 delete:映射删除语句 sql:可以重用的 sql 代码块 resultMap:最复杂&#xff0c…

章鱼网络 2022 虎年全回顾

全长5606字,预计阅读20分钟2022年对章鱼网络而言颇为特别。这是章鱼网络建设应用链多链生态历程的第一年,整个 Web3 行业都经历了极其糟糕的市场环境,但是我们在「生态建设」、「基础设施优化」、「社区治理」和「市场拓展」等都有长足进展&a…

31.Isaac教程--规划器代价

规划器代价 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录规划器代价组件入门通过应用程序图自定义成本导航本地规划器基于线性二次调节器 (LQR) 规划器。 它通过生成最小化成本函数的轨迹来工作。 不幸的是,没有适用于所有…

Allegro如何输出第三方网表操作指导

Allegro如何输出第三方网表操作指导 在做PCB设计的时候,会需要输第三方网表,Allegro支持快速输出第三方网表,如下图 具体操作如下 选择File选择Export

Leetcode:39. 组合总和、40. 组合总和 II(C++)

目录 39. 组合总和: 问题描述: 实现代码与解析: 回溯: 原理思路: 剪枝版: 40. 组合总和 II: 问题描述: 实现代码与解析: 回溯: 原理思路&#xff…

函数——“C”

各位CSDN的uu们新年快乐呀,祝大家越来越开心,越来越优秀。那行,让我们进入今天的正题,来了解了解函数,函数是什么,C语言中函数是如何分类的,函数参数,函数调用等一系列小知识点&…

文件操作详解-IO

目录 1.认识文件 2.文件的类型 3.java对文件的操作 针对文件系统操作 针对文件内容操作 字节流 字符流 字节流的使用 字符流的使用 4.文件IO小程序练习 示例1 示例2 1.认识文件 狭义的文件指的是硬盘上的文件和目录 广义的文件泛指计算机中的很多的软硬件资源,操…

3小时精通opencv(二)图片的常用操作

3小时精通opencv(二)图片的常用操作 参考视频资源:3h精通Opencv-Python 文章目录3小时精通opencv(二)图片的常用操作灰度图像高斯滤波边缘检测膨胀函数腐蚀函数整体代码灰度图像 img cv2.imread(Resources/lena.png) imgGray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.im…

【C++】位图 | 布隆过滤器

​🌠 作者:阿亮joy. 🎆专栏:《吃透西嘎嘎》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉哈希函数…

添加选课模块分析

1 模块需求分析 1.1 模块介绍 本模块实现了学生选课、下单支付、学习的整体流程。 网站的课程有免费和收费两种,对于免费课程学生选课后可直接学习,对于收费课程学生需要下单且支付成功方可选课、学习。 选课:是将课程加入我的课程表的过…

论文投稿指南——中文核心期刊推荐(水利工程)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

大展宏图、首创基于.NET 7强大内核-Zoomla!逐浪CMS v8.7.0发布

2022年底,微软 .NET Conf 在线活动正式开幕。作为微软开源、跨平台开发平台,.NET 7 现已推出首个正式版,这也代表微软的“统一工作”终于完成。 使用 .NET 7 可以轻松地将 .NET 7 项目容器化,在 GitHub 操作中设置 CI / CD 工作流…

拔高法三视图

拔高法最主要的就是俯视图,是三视图的根基,看主视图和侧视图,顶点位置在底面(俯视图)范围内,不在则不能拔高;俯视图有虚线不能拔高 首先标出俯视图所有结点,并且画出俯视图所对应的直观图。用斜二测画法 …

Spring Cloud 中的OpenFeign+Ribbon详解

1 spring cloud 远程调用没有看过的小伙伴可以点击传送门先去了解Nacos。有了Nacos做注册中心后,我们就可以获取其他服务的地址进行调用了。远程调用就需要用到我们今天的主角OpenFeign,如果被调用服务存在多个实例就需要进行负载均衡,负载均…

给定两个数组x和hp,长度都是N。 x数组一定是有序的,x[i]表示i号怪兽在x轴上的位置 hp数组不要求有序,hp[i]表示i号怪兽的血量

题目描述 给定两个数组x和hp,长度都是N。 x数组一定是有序的,x[i]表示i号怪兽在x轴上的位置 hp数组不要求有序,hp[i]表示i号怪兽的血量 为了方便起见,可以认为x数组和hp数组中没有负数。 再给定一个正数range,表示如果…

Vue 快速入门(二)

1、Vue浏览器插件安装 安装地址 https://devtools.vuejs.org/guide/installation.html下载完后,直接将vuejs-devtools.crx文件拖到Chrome浏览器扩展程序中去即可。如图: 2.安装完成后,试试效果,我们打开之前写的hello.html页面看…

32.Isaac教程--操纵运动规划

操纵运动规划 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html Isaac SDK 为机械臂的运动规划提供了以下组件: EndEffectorGlobalPlanner:使用逆运动学将末端执行器的笛卡尔目标转换为关节角度目标。 此小码可以接收笛卡尔…

云原生技能树-容器镜像制作、发布、拉取和运行

创建仓库 请在你自己的 gitcode.net 上创建一个仓库,命名为cloud_native_hello_py,目录结构如下: . ├── .dockerignore ├── .gitignore ├── Dockerfile ├── README.md └── src├── main.py└── requirements.txt其中 ma…

avb校验相关与块校验原理

一、启动校验流程 edk2/QcomModulePkg/Library/avb/VerifiedBoot.c DEBUG ((EFI_D_ERROR, "LoadImageAndAuth failed %r\n", Status)); in LoadImageAndAuth()edk2/QcomModulePkg/Application/LinuxLoader/LinuxLoader.c DEBUG ((EFI_D_ERROR, "LoadImageAndAu…