【脚踢数据结构】

  • (꒪ꇴ꒪ ),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.hqwc.cn/news/63608.html

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

相关文章

Django快速入门

文章目录 一、安装1.创建虚拟环境&#xff08;virtualenv和virtualenvwrapper&#xff09;2. 安装django 二、改解释器三、创建一个Django项目四、项目目录项目同名文件夹/settings.py 五、测试服务器启动六、数据迁移七、创建应用八、基本视图1. 返回响应 response2. 渲染模板…

PS透明屏,在科技展示中,有哪些优点展示?

PS透明屏是一种新型的显示技术&#xff0c;它将传统的显示屏幕与透明材料相结合&#xff0c;使得屏幕能够同时显示图像和透过屏幕看到背后的物体。 这种技术在商业展示、广告宣传、产品展示等领域有着广泛的应用前景。 PS透明屏的工作原理是利用透明材料的特性&#xff0c;通…

【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio构建Java、Python项目

文章目录 一、云IDE1、云IDE简介2、云IDE和云虚拟桌面区别 二、Cloud Studio 简介1、简介2、AI代码助手3、企业源代码安全 三、快速开始1、登录Cloud Studio2、新建工作空间3、代码空间 四、项目构建1、构建Java项目1.1 新建工作空间1.2 初始化项目1.3 初始化小案例1.4、测试Ja…

FinClip 支持小程序维度域名配置;桌面端体验活动进行中

FinClip 的使命是使您&#xff08;业务专家和开发人员&#xff09;能够通过小程序解决关键业务流程挑战&#xff0c;并完成数字化转型的相关操作。不妨让我们看看在本月的产品与市场发布亮点&#xff0c;看看是否有助于您实现目标。 产品方面的相关动向&#x1f447;&#x1f…

udp一般不会存在错数据

UDP在传输过程中会出现丢包的情况&#xff0c;但不会导致数据错乱的情况&#xff0c;这涉及到UDP协议的特性和工作原理。 无连接性&#xff1a;UDP是一种无连接的传输协议&#xff0c;每个UDP数据包都是独立的&#xff0c;没有依赖关系。因此&#xff0c;即使发生数据包丢失&am…

OpenSergo Spring Cloud Alibaba 带来的服务治理能力

博主介绍&#xff1a;✌全网粉丝3W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

搭建 elasticsearch8.8.2 伪集群 windows

下载windows 版本 elasticsearch8.8.2 以下链接为es 历史版本下载地址&#xff1a; Past Releases of Elastic Stack Software | Elastic windows 单节点建立方案&#xff1a; 下载安装包 elasticsearch-8.8.2-windows-x86_64.zip https://artifacts.elastic.co/download…

Arraylist集合

保存数据会经常使用到数组&#xff0c;但数组存在以下几个缺陷: 长度固定&#xff1b;保存的必须为同一类型的元素&#xff0c;&#xff08;基本数据类型&#xff0c;或引用数据类型&#xff09;&#xff1b;使用数组进行增加元素的步骤比较麻烦&#xff1b; 这个时候就需要用一…

SQL | 高级数据过滤

5-高级数据过滤 通过组合WHERE子句&#xff0c;建立功能更强的检索语句。 5.1-组合WHERE子句 前面写的都是单一条件下的WHERE子句&#xff0c;SQL语句允许给出多个WHERE子句来组合检索&#xff0c;这些WHERE子句通过AND子句或者OR子句进行连接。 操作符&#xff08;operato…

教你如何使用AES对接口参数进行加密

教你如何使用AES对接口参数进行加密 前言 我们作为程序猿&#xff0c;在浏览网站的时候偶尔也会打开控制台看看请求的接口&#xff0c;我们会发现有些接口的传输是 “乱码” &#xff0c;那么这个乱码究竟是什么呢&#xff1f;为什么要这么做&#xff1f; 其实这个所谓的 “…

深度学习常用的python库学习笔记

文章目录 数据分析四剑客Numpyndarray数组和标量之间的运算基本的索引和切片数学和统计方法线性代数 PandasMatplotlibPIL 数据分析四剑客 Numpy Numpy中文网 ndarray 数组和标量之间的运算 基本的索引和切片 数学和统计方法 线性代数 Pandas Pandas中文网 Matplotlib Mat…

3.2 Tomcat基础

1. Tomcat概述 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器。 Tomcat版本&#xff1a;apache-tomcat-8.5.76。 2.IDEA集成Tomcat 第一步 第二步 第三步 ​ 编辑切换为居中 添加图片注释&#xff0c;不超过 140 字&#xff0…