【脚踢数据结构】

这篇具有很好参考价值的文章主要介绍了【脚踢数据结构】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

一、什么是数据

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

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

【脚踢数据结构】,脚踢数据结构,数据结构,c语言

二、什么是结构


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

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

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

三、什么是数据结构


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

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)开发板实战文章来源地址https://www.toymoban.com/news/detail-643476.html

📢写在最后

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

到了这里,关于【脚踢数据结构】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【脚踢数据结构】队列(顺序和链式)

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

    2024年02月12日
    浏览(38)
  • 【数据结构】C语言结构体详解

    目录 前言 一、结构体的定义 二、定义结构体变量 三、结构体变量的初始化 四、使用typedef声明新数据类型名 五、指向结构体变量的指针 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo__✍️原创,首发于CSDN📚。 📣如需转

    2024年02月04日
    浏览(49)
  • 『初阶数据结构 • C语言』① - 数据结构为何重要

    本文内容借鉴一本我非常喜欢的书——《数据结构与算法图解》。学习之余,我决定把这本书精彩的部分摘录出来与大家分享。 数组是计算机科学中最基本的数据结构之一。如果你用过数组,那么应该知道它就是一个含有 数据的列表。它有多种用途,适用于各种场景,下面

    2024年02月16日
    浏览(47)
  • R语言数据结构(三)数据框

    数据结构是指在计算机中存储和组织数据的方式,不同的数据结构有不同的特点和适用场景。R语言中的常用数据结构,包括向量、矩阵、数组、列表和数据框。关于数据结构的使用,我们将分四篇文章分别介绍每种数据结构的操作方法和代码示例。 为方便大家理解记忆,对

    2024年01月15日
    浏览(39)
  • 【C语言】【数据结构】自定义类型:结构体

    这是一篇对结构体的详细介绍,这篇文章对结构体声明、结构体的自引用、结构体的初始化、结构体的内存分布和对齐规则、库函数offsetof、以及进行内存对齐的原因、如何修改默认对齐数、结构体传参进行介绍和说明。                  ✨  猪巴戒 :个人主页✨      

    2024年02月05日
    浏览(35)
  • 数据结构初阶(用C语言实现简单数据结构)--栈和队列

    ✨✨欢迎来到T_X_Parallel的博客!!       🛰️博客主页:T_X_Parallel       🛰️专栏 : 数据结构初阶       🛰️欢迎关注:👍点赞🙌收藏✍️留言 这小猫真好看 言归正传,通过上篇有关顺序表和链表的博客,可以了解到线性表的一些大致特征,这篇博

    2024年02月08日
    浏览(42)
  • 数据结构——二叉树基础结构篇(C语言)

    现在是北京时间2023年6月13日9点11分。从决定要开始减脂之后,饥饿总是伴随着我。一觉起来肚子咕咕叫,我还是想先把文章发了再吃第一餐。燕麦加蛋白粉几乎伴随了我大学的第一年早饭。昨天练了一个小时背,练背后还做了45分钟有氧。空腹训练没有影响我的训练状态。这

    2024年02月08日
    浏览(39)
  • 数据结构——队列(C语言)

    本篇文章将解决一下几个问题: 队列是什么? 如何实现一个队列? 什么场景下会用队列? 队列:一种只允许一端进行插入数据操作,在另一端进行删除操作的特殊线性表。队列具有先进先出(FIFO)入队列:进行插入操作的一端称为队尾,出队列的一端叫做队头。  队列也

    2024年02月11日
    浏览(44)
  • 数据结构——栈(C语言)

    栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端为栈底。栈中的数据元素遵守后进先出(LIFO)原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做出栈。出数

    2024年02月12日
    浏览(38)
  • C语言数据结构--链表

    顺序表的问题及思考 问题: 1. 中间/头部的插入删除,时间复杂度为O(N) 2. 增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。 3. 增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当前容量为100,满了以后增容到 200,我们再继续插入了5个数据,后面没有

    2024年02月05日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包