【数据结构】浅谈

✨✨✨专栏:数据结构     

          🧑‍🎓个人主页:SWsunlight

目录

一、概念:

二、物理结构:

1、顺序存储结构:

2、链式存储结构:

3、数据索引存储结构:

4、数据散列存储结构:

三、不同的数据结构的相同操作


一、概念:

        数据结构计算机存储、组织数据的的一种方式指相互之间存在一种多种特定关系的数据元素的集合。数据结构反映数据的内部构成,即数据由那部分构成,以什么方式构成,以及数据元素之间呈现的结构(关系)。

数据结构往往同高效的检索算法和索引技术有关

将数据结构拆分成“结构”“数据”:

  • “数据”(Data):
  • 数据:信息的载体,描述客观事物的符号(可以是数值非数值
  • 数据元素:组成数据的,有一定意义的基本单位。(数据(集合)中的一个"个体"(又可称为元素、结点、顶点、记录等)
  • 数据项:一个数据元素可以有多个数据项。
    • 初等项:数据项在数据处理时不能再分割的最小单位
    • 组合项:可以在改项的基础上再分割
  • 数据对象:具有相同特性的数据元素的集合

举个例子:以学籍系统中为列

数据:将所有学生信息收集起来(集合在一起)

数据对象:学生记录

数据元素:关于一个学生的记录就是一个数据元素

数据项:一个学生的记录(数据元素)可以拆分为:身份证,学号,籍贯,姓名,性别,成绩,出生年月日等多个数据项        

初等项:姓名,性别,籍贯已经不能再分割了,也就是最小基本单位

组合项:成绩的话还可以细分到到具体学科


  • “结构”:
  • 结构:组织数据的方式(数据元素之间都不是孤立的,而是存在着一定的关系,这种关系称为结构(Structure))
  • 逻辑结构:数据对象中数据元素之间的相互关系(考虑这个问题的逻辑关系)
    • 图形结结构:数据结构中的元素存在多对多的相互关系。
    • 树形结构:   数据结构中的元素存在一对多的相互关系。
    • 集合结构:集合中的元素除了同属于一个集合之外,没有其他关系。
    • 线性结构:线性结构中的数据元素之间是一对一的关系。
  • 存储结构(物理结构):
    • 顺序存储结构:
    • 链式存储结构:
    • 数据索引存储结构:
    • 数据散列存储结构:

逻辑结构  面向问题的,而物理结构  就是面向计算机的,其基本的目标就是将数据及其逻辑关系存储到计算机的内存。 

二、物理结构:

数据的逻辑结构在计算机存储空间的存放形式被称为数据的物理结构。

1、顺序存储结构:

逻辑上相邻的结点存储在物理位置上相邻的存储单元里,节点之间的逻辑关系由存储单元的相邻关系来体现:计算机用一组连续的存储单元来存放数据()

特点:

1、随机存储表中的元素(随机访问)

2、插入和删除操作时,需要移动元素(效率低),大小固定(想要更大的空间,需要扩容)

2、链式存储结构:

计算机中用任意的存储单元存储线性表的数据元素(可以是连续的存储单元,也可以是不连续的存储单元);对于逻辑上连续的的节点,并不会硬性要求在物理位置上也是连续的。

特点:

1、大小动态扩展,插入删除效率高。

2、不能随机访问。

3、数据索引存储结构:

(后面补充)

4、数据散列存储结构:

后面再进行补充

三、不同的数据结构的相同操作

虽然不同数据结构操作集不同,但是都必须具备以下操作:

1,结构的生成;
2.结构的销毁;
3,在结构中查找满足规定条件的数据元素;
4,在结构中插入新的数据元素;
5,删除结构中已经存在的数据元素;
6,遍历;

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SVN 合并到 Git 时有文件大于 100 M 被限制 Push

如果有文件大小大于 100M,GitHub 是会被限制推送到仓库中的,大概率情况会显示下面的错误: remote: Resolving deltas: 100% (3601/3601), done. remote: error: Trace: aea1f450da6f2ef7bfce457c715d0fbb9b0f6d428fdca80233aff34b601ff59b re…

声明变量的六种方法

ES6 声明变量的六种方法 varfunctionletconstclassimport 顶层对象的属性 1. ES6 声明变量的六种方法 ES5 只有两种声明变量的方法: var 命令和 function 命令。 ES6 除了添加 let 和 const 命令,还有另外两种声明变量的方法: import 命令和…

笨方法自学python(二)-注释

注释和#号 程序里的注释是很重要的。它们可以用自然语言告诉你某段代码的功能是什么。在你想要临时移除一段代码时,你还可以用注解的方式将这段代码临时禁用。 # A comment, this is so you can read your program later. # Anything after the # is ignored by py…

Python专题:八、列表(1)

Python的内置数据类型 数据类型:列表 list类型 可以是字符串,浮点数,整数,列表 列表特性 ①集合性的数据类型 ②列表是有序的 ③列表是可更新的 访问列表元素的方式也是[索引],也是从0开始的,不能超过…

【前端】桌面版docker并部署前端项目

环境 win10专业版 2004 , 需科学 官网下载安装包并安装4.29.0版本 终端输入 wsl --installdocker桌面版和模拟器只能选一个,不然一直转圈圈 镜像配置加速,在settings—>docker engine下 {"builder": {"gc": {"defaultKee…

二叉树介绍

引入 定义 区别 定义不同 形态不同 基本形态

自动驾驶中的神经辐射场:综述

24年4月清华大学论文“Neural Radiance Field in Autonomous Driving: A Survey”。 神经辐射场(NeRF)由于其固有的优势,特别是其隐式表示和新视图合成能力,引起了学术界和工业界的广泛关注。 随着深度学习的快速发展&#xff0c…

攻防世界-web-unseping

题目 知识点 PHP代码审计PHP序列化和反序列化PHP中魔术方法命令执行绕过方式 解读源码 <?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function …

视频资源汇聚平台常见的几种接入方式

视频资源汇聚平台 视频汇聚平台可以实现海量资源的接入、汇聚、存储、处理、分析、运维等&#xff0c;平台具备轻量化接入能力&#xff0c;可支持多协议方式接入&#xff0c;包括主流标准协议GB28181、RTSP、ONVIF、RTMP、FLV、WEBSOCKET等&#xff0c;以及厂家私有协议与SDK接…

网络安全的未来:挑战、策略与创新

引言&#xff1a; 在数字化时代&#xff0c;网络安全已成为个人和企业不可忽视的议题。随着网络攻击的日益频繁和复杂化&#xff0c;如何有效保护数据和隐私成为了一个全球性的挑战。 一、网络安全的现状与挑战 网络安全面临的挑战多种多样&#xff0c;包括但不限于恶意软件、…

第十三届蓝桥杯决赛(国赛)真题 Java A 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 火柴棒数字试题 B: 小蓝与钥匙试题 C: 内存空间试题 D: 斐波那契数组试题 E: 交通信号试题 F: 数组个数试题 G: 六六大顺试题 H : \mathrm{H}: H: 选素数试题 I: 图书借阅试题 J \mathrm{J} J : 括号序列树 发现宝藏 前些天发现了一个…

【Linux:lesson1】的基本指令

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Linux课程学习 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 &#x1f697;打开Xshell&#xff0c;登陆root…

ASP.NET WebApi 如何使用 OAuth2.0 认证

前言 OAuth 2.0 是一种开放标准的授权框架&#xff0c;用于授权第三方应用程序访问受保护资源的流程。 OAuth 2.0 认证是指在这个框架下进行的身份验证和授权过程。 在 OAuth 2.0 认证中&#xff0c;涉及以下主要参与方&#xff1a; 资源所有者&#xff08;Resource Owner&…

springboot 引入第三方bean

如何进行第三方bean的定义 参数进行自动装配

PCB检查

文章目录 1、打开DRC2、database check3、检查DRC4、检查多余的线5、其他需要注意的点a.检查差分线、等长线是否已调好b.注意检查晶振、电感等元件上/下方是否其他线经过&#xff08;一般不允许线经过&#xff09;c.打开place_bound_top/bottom 检查元件是否超过这个允许范围d.…

【高校科研前沿】北师大陈晋教授团队在遥感顶刊发表最新成果:ClearSCD模型:在高空间分辨率遥感影像中综合利用语义和变化关系进行语义变化检测

01文章简介 论文名称&#xff1a;The ClearSCD model: Comprehensively leveraging semantics and change relationships for semantic change detection in high spatial resolution remote sensing imagery&#xff08;ClearSCD模型&#xff1a;在高空间分辨率遥感影像中综合…

【GESP】2023年12月图形化二级 -- 小杨报数

小杨报数 【题目描述】 小杨需要从 1 1 1到 N N N报数。在报数过程中&#xff0c;小杨希望跳过 M M M的倍数。例如&#xff0c;如果 N 5 N5 N5&#xff0c; M 2 M2 M2&#xff0c;那么小杨就需要依次报出 1 1 1&#xff0c; 3 3 3&#xff0c; 5 5 5。 默认小猫角色和白色背…

桥接模式类图与代码

欲开发一个绘图软件&#xff0c;要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例&#xff0c;对应的绘图程序如表 7.7 所示。 根据绘图软件的扩展性要求&#xff0c;该绘图软件将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况&#xff0c;现采用桥接…

车辆运动模型中LQR代码实现

一、前言 最近看到关于架构和算法两者关系的一个描述&#xff0c;我觉得非常认同&#xff0c;分享给大家。 1、好架构起到两个作用&#xff1a;合理的分解功能、合理的适配算法&#xff1b; 2、好的架构是好的功能的必要条件&#xff0c;不是充分条件&#xff0c;一味追求架构…

Scala编程入门:从零开始的完整教程

目录 引言环境准备创建第一个Scala项目基本语法高阶概念进阶资源结语 引言 Scala是一种强大的、静态类型的、多范式编程语言&#xff0c;它结合了面向对象和函数式编程的特点。本教程将指导您如何从零开始学习Scala&#xff0c;并搭建一个简单的开发环境。让我们开始探索Scala…