【脚踢数据结构】

  • (꒪ꇴ꒪ ),Hello我是祐言QAQ
  • 我的博客主页:C/C++语言,Linux基础,ARM开发板,软件配置等领域博主🌍
  • 快上🚘,一起学习,让我们成为一个强大的攻城狮!
  • 送给自己和读者的一句鸡汤🤔:集中起来的意志可以击穿顽石!
  • 作者水平很有限,如果发现错误,可在评论区指正,感谢🙏

        今天起,将开始数据结构的学习,学习数据结构之前,我们先来了解一下什么是数据,什么是结构以及什么是数据结构。

一、什么是数据

        数据是指描述事物特征或属性的符号集合,可以是数字、文字、图像、声音等形式的信息。在计算机科学中,数据是程序处理的基本元素,是计算机程序的输入和输出。数据可以分为不同的类型,例如整数、浮点数、字符、布尔值等,而计算机通过存储和处理这些数据来实现各种功能。

  • 数据的概念:数据(data)是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号总称。
  • 数据元素(data element)的概念:数据元素是数据的基本单元,在计算机程序中通常作为一个整体(结构体)来考虑和处理。一个数据元素可由若干个数据项(data item)组成。数据项是数据的不可分割的最小单位。
  • 数据对象(data object)的概念:数据对象是性质相同的数据元素的集合,是数据的一个子集。

 

二、什么是结构


        结构是指数据元素之间关系的不同性质称为结构。在数据结构中,数据元素之间的关系可以有不同的特性,通常有四类基本结构:

        集合结构、线性结构、树状结构(层次结构,一对多关系)、网状结构(图状结构,多对多关系)。

        集合结构中的数据元素之间除了"同属一个集合"的关系外,别无其他关系。线性结构中的数据元素存在一对一的相互关系,每个元素有且仅有一个直接前驱元素和一个直接后续元素。树状结构中除了一个数据元素(根节点)以外,每个元素有且仅有一个直接前驱元素,但可以有多个直接后续元素。网状结构中的每个元素可以有多个直接前驱元素和多个直接后续元素。

三、什么是数据结构


        数据结构是研究数据的逻辑结构物理结构以及它们之间相互关系,并对这种结构定义相应的运算,确保经过这些运算后所得到的新结构仍然是原来的结构类型。数据结构涉及三个主要方面:逻辑结构、存储结构和算法。

1.逻辑结构

        表示数据之间的抽象关系,描述数据元素之间的逻辑关联方式,如线性结构、树状结构、图状结构等。

        (1)线性结构:线性表(链表、栈、队列),线性表的数据结构中元素存在一对一的相互关系;

        (2)非线性结构:树(一对多)、图(多对多)。

2.存储结构

        表示数据在计算机中的存储方式,具体的实现方式有顺序存储、链式存储、索引存储、散列存储等。

      (1)  顺序存储方式(数组、顺序栈、顺序队列);

      (2)链式存储方式(链表、链式栈、链式队列、二叉树);

      (3) 索引存储方式(目录);

      (4)  散列存储方式。

3.算法

        对数据进行运算的操作,包括增加、删除、查找、修改、排序等。

4.数据结构的形式定义

        数据结构是一个二元组:
                                        Data_Structure = (D, S)
        其中:D是数据元素的有限集,S是D上关系的有限集(数据元素之间的关系的集合)。


(1)如果 D != null,而S == null,则该数据结构为集合结构。
(2)如果 D = {01, 02, 03, 04, 05},S = {<02,04>, <03,05>, <05,02>, <01,03>},则该数据结构是线性结构。
        在这些数据元素中有一个可以被称为“第一个”的数据元素;还有一个可以被称为“最后一个”的数据元素;除第一个元素以外每个数据元素有且仅有一个直接前驱元素,除最后一个元素以外每个数据元素有且仅有一个直接后续元素。这种数据结构的特点是数据元素之间是 1对 1 的联系,即线性关系。
(3)D = {01, 02, 03, 04, 05, 06},S = {<01,02>, <01,03>, <02,04>, <02,05>, <03,06>}
        除了一个数据元素(元素 01)以外每个数据元素有且仅有一个直接前驱元素,但是可以有多个直接后续元素。这种数据结构的特点是数据元素之间是 1 对 N 的联系,即树结构。
(4)D = {01, 02, 03, 04, 05},S = {<01,02>, <01,05>, <02,01>, <02,03>, <02,04>, <03,02>,<04,02>, <04,05>, <05,01>, <05,04>;
        每个数据元素可以有多个直接前驱元素,也可以有多个直接后续元素。这种数据结构的特点是数据元素之间是 M 对 N 的联系,即图结构。

       值得注意的是:  结构定义中的"关系"描述的是数据元素之间的逻辑关系,因此是数据的逻辑结构。而数据结构在计算机中的表示(又称为映像)称为数据的物理结构,又称为存储结构。

四、总结

        

        在IT界有句话叫做: 程序设计 = 数据结构 + 算法。   

     我们写的程序往往是用来解决生活中的实际问题,而很多生活中的场景就对应了相应数据结构。例如:去食堂打饭对应了队列这种线性结构;公司的组织架构对应了树状结构;地图上各个城市之间的关系对应网状结构。也就是说我们可以用数据结构来对生活中的场景进行数学建模。

        数据结构是计算机程序设计的基础,通过选择合适的数据结构和算法,可以高效地解决各种计算问题。程序设计中常常用数据结构来对生活中的场景进行数学建模,使得问题求解更加直观和高效。在计算机科学中,数据结构和算法被认为是程序设计的核心内容,这句话也体现了数据结构的重要性。

        更多C语言Linux系统ARM板实战数据结构相关文章,关注专栏:

   手撕C语言

            玩转linux

                    脚踢数据结构

                            6818(ARM)开发板实战

📢写在最后

  • 今天的分享就到这啦~
  • 觉得博主写的还不错的烦劳 一键三连喔~
  • 🎉感谢关注🎉

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

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

相关文章

服务器时钟同步

服务器时钟同步 文章目录 服务器时钟同步背景windows时钟同步Linux机器上的时钟同步Centos时钟同步Ubuntu系统时钟同步 查看是否同步的命令 背景 运维&#xff0c;XXX服务器慢了2秒&#xff0c;导致XXX业务没有正常执行&#xff0c;请立即排查为啥会有时钟不同步的问题。 首先…

neo4j终端操作

1】进入容器 (base) xiaokkkxiaokkkdeMacBook-Pro ~ % docker exec -it 77ed5fe2b52e /bin/bash 2】启动、停止neo4j root77ed5fe2b52e:/var/lib/neo4j/bin# ./neo4j start Neo4j is already running (pid:7). Run with --verbose for a more detailed error message.root7…

idea如何开启远程调试

一&#xff1a;打包需要部署的jar包上传到服务器 二&#xff1a;服务器&#xff08;开启远程调试接口&#xff09; nohup java -jar -Xdebug -Xrunjdwp:transportdt_socket,servery,suspendn,address8453 xxx.jar > xxx.log 2>&1 & 三&#xff1a; idea配置rem…

k8s RBAC授权普通系统用户对namespace访问权限

背景&#xff1a;最近遇到一个问题&#xff0c;那就是需要给别人共享一下 Kubernetes 的某个资源的使用和访问权限&#xff0c;这个仅仅存在于某个 namespace 下&#xff0c;但是我又不能把管理员权限全都给它&#xff0c;我想只给他授予这一个 Namespace 下的权限&#xff0c;…

【数据结构与算法——TypeScript】哈希表

【数据结构与算法——TypeScript】 哈希表(HashTable) 哈希表介绍和特性 哈希表是一种非常重要的数据结构&#xff0c;但是很多学习编程的人一直搞不懂哈希表到底是如何实现的。 在这一章节中&#xff0c;我门就一点点来实现一个自己的哈希表。通过实现来理解哈希表背后的原理…

修改el-select和el-input样式;修改element-plus的下拉框el-select样式

修改el-select样式 .select_box{// 默认placeholder:deep .el-input__inner::placeholder {font-size: 14px;font-weight: 500;color: #3E534F;}// 默认框状态样式更改:deep .el-input__wrapper {height: 42px;background-color: rgba(0,0,0,0)!important;box-shadow: 0 0 0 …

Harbor企业镜像仓库部署(本地)

简述&#xff1a; Docker 官方镜像仓库是用于管理公共镜像的地方&#xff0c;大家可以在上面找到想要的镜像&#xff0c;也可以把自己的镜像推送上去。但是有时候服务器无法访问互联网&#xff0c;或者不希望将自己的镜像放到互联网上&#xff0c;那么就需要用到 Docker Regis…

逆向破解学习-割绳子

试玩 支付失败&#xff0c;请检查网络设置 Hook成功 Hook代码 import android.app.Application; import android.content.Context;import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_…

后端开发7.轮播图模块【mongdb开发】

概述 轮播图模块数据库采用mongdb开发 效果图 数据库设计 创建数据库 use sc; 添加数据 db.banner.insertMany([ {bannerId:"1",bannerName:"商城轮播图1",bannerUrl:"http://xx:8020/img/轮播图/shop1.png"}, {bannerId:"2"…

ELK的搭建和使用

ELK的搭建和使用 1、什么是ELK 日志收集平台有多种组合方式&#xff1a; ELK Stack 方式&#xff1a;Elasticsearch Logstash Filebeat Kibana&#xff0c;业界最常见的架构。 Elasticsearch Logstash Kafka Kibana&#xff0c;用上了消息中间件&#xff0c;但里面也有…

Java类型转换

总是忘&#xff0c;总是记混&#xff0c;气气气&#xff01; 基本类型 4整型、2浮点型、1布尔、1字符 关键字大小取值范围包装类型byte8-27~27-1Byteshort16-215~215-1Shortint32-231~231-1Integerlong64-263~263-1Longfloat323.4e-38~3.4e38Floatdouble641.7e-38~1.7e38Dou…

HarmonyOS应用开发的新机遇与挑战

HarmonyOS 4已经于2023年8月4日在HDC2023大会上正式官宣。对广大HarmonyOS开发者而言&#xff0c;这次一次盛大的大会。截至目前&#xff0c;鸿蒙生态设备已达7亿台&#xff0c;HarmonyOS开发者人数超过220万。鸿蒙生态充满着新机遇&#xff0c;也必将带来新的挑战。 HarmonyO…

FPGA优质开源项目 – PCIE通信

本文介绍一个FPGA开源项目&#xff1a;PCIE通信。该工程围绕Vivado软件中提供的PCIE通信IP核XDMA IP建立。Xilinx提供了XDMA的开源驱动程序&#xff0c;可在Windows系统或者Linux系统下使用&#xff0c;因此采用XDMA IP进行PCIE通信是比较简单直接的。 本文主要介绍一下XDMA I…

三次握手与四次挥手 tcp协议特点 tcp状态转移图 TIME_WAIT 抓包

讲解 三次握手图示理解讲解 四次挥手图示理解理解 tcp协议特点tcp状态转移过程总图四次挥手状态转移过程三次挥手状态转移过程 TIME_WAIT状态存在的原因连接状态的一个测试一个面试题&#xff1a;抓包&#xff1a; 三次握手 图示理解 三次握手发生在客户端执行 connect()的时…

如何解决物流投诉问题,拥有更多的回头客?

在电商物流中&#xff0c;客户投诉比较多的一块通常是配送延迟或派送问题。以下是一些可能导致此类问题的原因以及解决方法&#xff1a; 配送员数量不足或调度不合理&#xff1a;电商企业可能面临配送员不足的情况&#xff0c;导致派送时间延长或出现派送失败等问题。解决方法…

ArcGIS Pro 基础安装与配置介绍

ArcGIS Pro ArcGIS Pro作为ESRI面向新时代的GIS产品&#xff0c;它在原有的ArcGIS平台上继承了传统桌面软件&#xff08;ArcMap&#xff09;的强大的数据管理、制图、空间分析等能力&#xff0c;还具有其独有的特色功能&#xff0c;例如二三维融合、大数据、矢量切片制作及发布…

项目实战 — 消息队列(7){虚拟主机设计(2)}

目录 一、消费消息的规则 二、消费消息的具体实现方法 &#x1f345; 1、编写消费者类&#xff08;ConsumerEnv&#xff09; &#x1f345; 2、编写Consumer函数式接口&#xff08;回调函数&#xff09; &#x1f345; 3、编写ConsumeerManager类 &#x1f384;定义成员变…

MySQL REGEXP_SUBSTR() 函数

MySQL 8.0 的 REGEXP_SUBSTR()函数从一个字符串获取和指定模式匹配的子串并返回。默认情况下&#xff0c;REGEXP_SUBSTR()函数执行不区分大小写的匹配。 REGEXP_SUBSTR() 语法如下&#xff1a; REGEXP_SUBSTR (expression, pattern [, position[, occurrence[, match_type]]])…

28 玻尔兹曼机

文章目录 28 玻尔兹曼机28.1 模型定义28.2 梯度推导28.3 梯度上升28.4 基于VI[平均场理论]求解后验概率 28 玻尔兹曼机 28.1 模型定义 玻尔兹曼机是一张无向图&#xff0c;其中的隐节点和观测节点可以有任意连接如下图&#xff1a; 我们给其中的节点、连线做出一些定义&#…

通过这些case,我把项目LCP时间减少了1.5s

您好&#xff0c;如果喜欢我的文章&#xff0c;可以关注我的公众号「量子前端」&#xff0c;将不定期关注推送前端好文~ 前言 最近在做公司几个项目性能优化&#xff0c;整理出一些比较有用且常见的case来分享一下。 A项目优化 白屏相关 DNS预连接、资源预解析 对于公共域…