数据结构初探:揭开数据结构奥秘

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

数据结构初探:揭开数据结构奥秘,图解数据结构,数据结构,c语言,经验分享
🌈个人主页:聆风吟
🔥系列专栏:数据结构、算法模板、汇编语言
🔖少年有梦不应止于心动,更要付诸行动。


📋前言

    💬 文章主要介绍:本系列主要对数据结构的进行由浅入深的讲解,希望对你今后的学习有一定的帮助。如果有发现错误的地方还请在评论区告知,非常感谢!
    📚 系列专栏:本期文章收录在《图解数据结构》,大家有兴趣可以浏览和关注,后面将会有更多精彩内容!
    🎉 欢迎大家关注🔍点赞👍收藏⭐️留言📝



一. 数组结构起源

摘录:
    早期人们都把计算机理解为数值计算工具,就是感觉计算机当然是用来计算的,所以计算机解决问题,应该是先从具体问题中抽象出一个适当的数据模型,设计出一个解此数据模型的算法,然后再编写程序,得到一个实际的软件。可现实中,我们更多的不是解决数值计算的问题,而是需要一些更科学有效的手段(比如表、树和图等数据结构)的帮助,才能更好地处理问题。所以:
    数据结构是一门研究非数值计算的程序设计问题的操作对象,以及他们之间的关系和操作等相关问题。

    1968年,美国的高德纳(Donald E. Knuth)教授在其所写的《计算机程序设计艺术》第一卷《基本算法》中,较系统地阐述了数据的逻辑结构和存储结构及其操作,开创了数据结构的课程体系。同年,“数据结构” 作为一门独立的课程,在计算机科学的学位课程中开始出现。也就是说,那之后计算机相关专业的学生开始接受“数据结构”的“折磨”——其实应该是享受才对。

    之后,20世纪70年代初,出现了大型程序,软件也开始相对独立,结构程序设计成为程序设计方法学的主要内容,人们越来越重视“数据结构”,认为 程序设计的实质是对确定的问题选择一种好的结构,加上设计一种好的算法。可见,数据结构在程序设计当中占据了重要的地位。
数据结构初探:揭开数据结构奥秘,图解数据结构,数据结构,c语言,经验分享



二. 基本概念和术语

2.1 数据

    数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别的,并输入给计算机处理的符号集合。 数据不仅仅包括整形、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。

2.2 数据元素

    数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。 比如在人类中,人是数据元素;在禽兽类中,牛、马、鸡等动物都是禽兽类的数据元素。
数据结构初探:揭开数据结构奥秘,图解数据结构,数据结构,c语言,经验分享

2.3 数据项

    数据项:一个数据元素可以由若干数据项组成。数据项是数据不可分割的最小元素。 比如人这样一个数据元素,可以有眼睛、耳朵、鼻子、嘴巴、手、脚这些数据项,也可以有名字、年龄、性别、家庭地址、联系电话、邮政编码、等数据项,具体有哪些数据项有你来决定。
数据结构初探:揭开数据结构奥秘,图解数据结构,数据结构,c语言,经验分享

2.4 数据对象

    数据对象:是性质相同的数据元素的集合,是数据的子集。其中,性质相同是指数据元素具有相同的数量和类型的数据项。

2.5 数据结构

    以上是关于数据的定义。结构的定义是:不同数据数据元素之间不是相互独立的,而是存在特定关系,我们称这些关系为结构。介绍了数据和结构的定义,那数据结构的定义呢?

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合



三. 逻辑结构和物理结构

    按照视点的不同,我们把数据结构分为逻辑结构和物理结构。

3.1 逻辑结构

    逻辑结构:是指数据对象中数据元素的之间的相互关系。逻辑结构分为一下四种:

  1. 集合结构
    集合结构:集合结构中的数据元素除了同属于一个集合外,他们之间没有其他关系。如下图所示:
    数据结构初探:揭开数据结构奥秘,图解数据结构,数据结构,c语言,经验分享

  2. 线性结构
    线性结构:线性结构中的数据元素之间是一对一的关系。如下图所示:
    数据结构初探:揭开数据结构奥秘,图解数据结构,数据结构,c语言,经验分享

  3. 树形结构
    树形结构:树形结构中的数据元素存在一种一对多的层次关系。如下图所示:
    数据结构初探:揭开数据结构奥秘,图解数据结构,数据结构,c语言,经验分享

  4. 图形结构
    图形结构:图形的数据元素是多对多的关系。如下图所示:
    数据结构初探:揭开数据结构奥秘,图解数据结构,数据结构,c语言,经验分享

注意事项: 用示意图表示数据的逻辑时,需要注意一下两点:

  • 将每一个数据元组看作一个结点,用圆圈表示;
  • 元素之间的逻辑关系用结点之间的连线表示,如果这个关系是有方向的,那么用带箭头的连线表示。

3.2 物理结构

    物理结构(在很多书中也称存储结构):是指数据的逻辑结构在计算机中的存储形式。数据元素的存储结构形式有两种:顺序存储和链式存储。

  1. 顺序存储结构
    顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。如下图所示:
    数据结构初探:揭开数据结构奥秘,图解数据结构,数据结构,c语言,经验分享

  2. 链式存储结构
    链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。因为数据元素的存储关系并不能直接反映其逻辑关系,因此需要用一个指针存放数据元素的地址,这样通过地址就可以找到相数据元素的位置。如下图所示:
    数据结构初探:揭开数据结构奥秘,图解数据结构,数据结构,c语言,经验分享



四. 数据类型

    数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称

4.1 数据类型的定义

    数据类型是按照值的不同进行划分的。在高级语言中,每个变量、常量和表达式都有各自的取值范围。类型就是用来说明变量或表达式的取值范围和所能进行的操作。在c语言中,按照值的不同,数据可以分为两类:

  • 原子类型
    原子类型是不可以在分解的基本类型,包括整型、实型、字符型等
  • 结构类型
    结构类型是由若干个类型组合而成,是可以再分解的。例如,整型数组是由若干整型数据组合而成

4.2 抽象数据类型

    抽象数据类型(Abstract Data Type,ADT)是指一个数学模型及定义在该模型上的一组操作。抽象类型的定义取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。

    实际上,抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性。抽象数据类型把实际生活中的问题分解为多个规模小且容易处理的问题,然后建立一个计算机能处理的数据模型,并把每个功能模块的实现细节作为一个独立的单元,从而使具体实现过程隐藏起来。
    抽象数据类型的标准格式:

ADT 抽象数据类型名
Data
  数据元素之间的逻辑关系的定义
Operation
  操作 1
  		初始条件
  		操作结果描述
  操作 2
  		......
  操作 n
  		......
 endADT


📝全文总结

    本文主要讲解了数据结构的起源、基本概念、数据结构的分类等相关基础知识,意在让大家对数据结构有个初步了解,为后面的学习打下基础。

     今天的干货分享到这里就结束啦!如果觉得文章还可以的话,希望能给个三连支持一下,聆风吟的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是作者前进的最大动力!
数据结构初探:揭开数据结构奥秘,图解数据结构,数据结构,c语言,经验分享文章来源地址https://www.toymoban.com/news/detail-787334.html

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

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

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

相关文章

  • 数据结构--》解锁数据结构中树与二叉树的奥秘(二)

    数据结构--》解锁数据结构中树与二叉树的奥秘(二)

            数据结构中的树与二叉树,是在建立非线性数据结构方面极为重要的两个概念。它们不仅能够模拟出生活中各种实际问题的复杂关系,还常被用于实现搜索、排序、查找等算法,甚至成为一些大型软件和系统中的基础设施。         无论你是初学者还是进阶者,

    2024年02月08日
    浏览(14)
  • 【数据结构】--- 探索栈和队列的奥秘

    【数据结构】--- 探索栈和队列的奥秘

    关注小庄 顿顿解馋૮(˶ᵔ ᵕ ᵔ˶)ა 💡个人主页:9ilk 💡专栏:数据结构之旅 上回我们学习了顺序表和链表,今天博主来讲解两个新的数据结构 — 栈和队列 , 请放心食用 对于这么坨书,我们要拿到最下面的书是不是要最后才能拿到;而对于最上面的书它是最晚放上去的

    2024年04月13日
    浏览(9)
  • 【海贼王的数据航海:利用数据结构成为数据海洋的霸主】探究二叉树的奥秘

    【海贼王的数据航海:利用数据结构成为数据海洋的霸主】探究二叉树的奥秘

    目录 1 - 树的概念及结构 1.1 - 树的概念 1.2 - 树的相关概念 1.3 - 树的表示 1.4 - 树在实际中的运用(表示文件系统的目录树结构) 2 - 二叉树概念及结构 2.1 - 二叉树的概念 2.2 - 现实中的二叉树 2.3 - 特殊的二叉树 2.4 - 二叉树的性质 2.5 - 二叉树的存储结构 3 - 二叉树的顺序结构及实

    2024年03月12日
    浏览(11)
  • 【头歌】 Python数据结构 Python案例 实验一python初探(1)

    【头歌】 Python数据结构 Python案例 实验一python初探(1)

    任务描述 本关任务:编写一个程序,依次输入用户的学号,姓名和手机号码 再依次输出相关信息 为了完成本关任务,你需要掌握: 1.如何输入数据 2.如何输出 输入语句 变量 = input( 提示性文字 ) 语句功能:系统显示提示性文字,等待用户输入。 将用户输入的信息存储在指定

    2024年04月11日
    浏览(38)
  • 【数据结构】初探时间与空间复杂度:算法评估与优化的基础

    【数据结构】初探时间与空间复杂度:算法评估与优化的基础

    🚩 纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:数据结构 🔥该文章主要了解算法的时间复杂度与空间复杂度等相关知识。 📗时间复杂度和空间复杂度是计算机科学中用来评估算法效率的两个重要概念。它们分别描述了算法在执行时间和额外内存使用方

    2024年02月08日
    浏览(7)
  • 【数据结构】堆详解!(图解+源码)

    【数据结构】堆详解!(图解+源码)

    🎥 屿小夏 : 个人主页 🔥个人专栏 : 数据结构解析 🌄 莫道桑榆晚,为霞尚满天! 堆是一种基本而强大的数据结构。本文将深入探讨堆的概念、原理以及实现。 普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存

    2024年02月05日
    浏览(8)
  • 【数据结构】图解八大排序(上)

    【数据结构】图解八大排序(上)

    生活中,我们经常能看到排序的应用。例如,我们在网购商品的时候,经常按销量从高到低排序。 常见的排序算法有: 先来介绍一下关于排序算法的几个概念。 稳定性 :相等的元素排序之后相对次序不变 内部排序 :数据全在内存中的排序 外部排序 :数据太多不能同时在

    2023年04月27日
    浏览(6)
  • 【数据结构】图解八大排序(下)

    【数据结构】图解八大排序(下)

    在上一篇文章中,我们已经学习了五种排序算法,还没看过的小伙伴可以去看一下:传送门 今天要讲的是八大排序中剩下的三种,这三种排序算法用的是非常多的,需要好好掌握。 下面介绍的排序算法均以排升序为例。 快排的思想 是分治,就是选定一个基准值,使这个值的

    2024年02月17日
    浏览(9)
  • 数据结构:手撕图解二叉树(含大量递归图解)

    数据结构:手撕图解二叉树(含大量递归图解)

    二叉树的几乎所有实现都是依靠递归实现,递归的核心思路是把任何一个二叉树看成根和左右子树,而二叉树递归的核心玩法就是把二叉树的左右子树再看成根,再找左右子树,再看成根… 因此,解决二叉树问题实际上要把二叉树转换成一个一个子树的过程,找到一个一个的

    2024年02月15日
    浏览(14)
  • 数据结构---手撕图解二叉树(含大量递归图解)

    数据结构---手撕图解二叉树(含大量递归图解)

    二叉树的几乎所有实现都是依靠递归实现,递归的核心思路是把任何一个二叉树看成根和左右子树,而二叉树递归的核心玩法就是把二叉树的左右子树再看成根,再找左右子树,再看成根… 因此,解决二叉树问题实际上要把二叉树转换成一个一个子树的过程,找到一个一个的

    2024年02月16日
    浏览(9)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包