Day24-【13003】短文,数据结构与算法开篇,什么是数据元素?数据结构有哪些类型?什么是抽象类型?

文章目录

  • 13003数据结构与算法全书框架
    • 考试题型的分值分布如何?
  • 本次内容概述
  • 绪论
    • 第一节概览
      • 什么是数据、数据元素,数据项,数据项的值?
      • 什么是数据结构?分哪两种集合形式(逻辑和存储)?
        • 逻辑结构有哪4类?每一类涉及哪些操作?
        • 存储结构有哪4类?每一类和逻辑存储有何关联?
    • 类型和数据项的值的关系是什么?什么是数据类型?
      • 基本类型有哪两种?
      • 抽象类型是什么?

13003数据结构与算法全书框架

在这里插入图片描述

之前学习过的内容

一、数组与矩阵

二、线性表

三、广义表

四、数与二叉树

五、图

六、排序与查找

考试题型的分值分布如何?

在这里插入图片描述

本次内容概述

在这里插入图片描述

之前学习过的内容有

二、线性表

顺序表

链表,包括单链表,循环链表,双向链表

绪论

第一节概览

在这里插入图片描述

之前学过的有

顺序存储方法(结构),链式存储方法(结构)

另外两种存储方法没学

  • 原来存储方法,是从存储角度来考虑的数据结构,之前学的确实有欠缺

见,Day11-【软考】稀疏矩阵考试中如何计算?以及线性表的分类有哪些?,中:什么是线性表?线性结构中顺序表和链表

这一天学习的内容,有好多要深化的

什么是数据、数据元素,数据项,数据项的值?

  • 每一名学生的,学号,姓名,各科目成绩;每一本图书的,书名,作者名,出版社名,书号,出版日期,这一条记录,就是一个数据元素

    表中共30个数据元素,因为一共有30个学生,也就是有30行,30个数据元素

    图中,每个椭圆都表示一个数据元素

    • 这个怎么理解,看图知道就行

      要一层层看,特别是下层,每一层的椭圆,确实就是一个个数据元素,并且每一层元素之间,居然构成了树结构,这就是数据元素之间的关系

    这30个数据元素,居然是一种线性结构的数据元素集合,也就是说,学号这一栏的顺序不可改变

  • 学号,姓名;书名,作者名,就是数据项

​ 表中每个数据元素,有5个数据项,分别是学号,姓名,性别,出生日期,籍贯

​ M202210300,王义平,山东,都是数据项的值,学号的值,一定不同,有特殊含义,与学生一一对应,其他的值,可以相同

​ 在数据结构中,数据的最小不可分割的单位是数据项

  • 全部学生的记录;全部图书的记录,构成了数据

    数据元素作为一个完整的对象(整体)是构成数据的基本单位

在这里插入图片描述

在这里插入图片描述

什么是数据结构?分哪两种集合形式(逻辑和存储)?

带有结构特性的数据元素集合构成数据结构。

数据结构又分为逻辑结构和存储结构

也就是说,数据元素集合,有两种集合形式

逻辑结构有哪4类?每一类涉及哪些操作?

从逻辑角度来看,基本的数据结构包括4类,分别是集合、线性结构、图结构和树结构。

1、集合由元素构成,是数学中最基本的概念之一。集合中各元素之间没有次序关系

涉及集合的操作包括:

将新元素加入集合、从集合中删除指定元素

判定某元素是否属于集合等

判定集合是否为空、

求两个集合的并集、求两个集合的交集、求一个集合的补集等

  • 是不是不存在关系

集合的操作可以借用线性结构的操作来完成,一般不单独讨论集合。

当然,如果还有其他的需求,则也可以使用树结构来完成。;原来集合,特殊情况下,也可以使用树结构来操作

2、线性结构是数据元素之间存在着先后次序关系的结构,每个元素都对应着一个唯一的次序,这个次序决定着元素的位置。

表1-1某班30名学生的基本信息,就是一种线性结构

包含“M2022103001”的记录是第一个元素,包含“M2022103030”的记录是第30个元素。

也就是说,头,和尾,是固定的,第一个,和最后一个,是固定的数据元素

排在每个数据元素前面的元素是唯一的,称为直接前驱

同样地,排在每个数据元素后面的元素也是唯一的,称为直接后继

当然,第一个和最后一个元素是例外的,第一个元素没有直接前驱,最后一个元素没有直接后继。

  • 存在关系的元素个数:数据元素之间是一对一的关系

3、图结构是一种网状结构

  • 存在关系的元素个数:多对多关系

4、树结构可以被看作图的特例

图 1-1一本书的目录构成的树,就是一个树结构

  • 存在关系的元素个数:一对多关系;看来特例,就是把多对多,变成一对多关系;

  • 这不就是数据库中的“联系”的联系类型么,看来最好是把一对多,转成多对多关系,才方便存储和计算

树结构和图结构都是比线性结构更复杂的结构,它们属于非线性结构

原来线性结构(集合,线性结构),非线性结构(图结构,树结构),都是只是从逻辑角度,来对数据结构进行的分类

之前的学习,有点不全面,见,Day11-【软考】稀疏矩阵考试中如何计算?以及线性表的分类有哪些?,中:数据结构有哪几种?线性结构和非线性结构

在这里插入图片描述

算法的设计主要基于数据的逻辑结构,关注的是哪些数据元素之间存在相互关系,以及算法中要按照什么样的次序对哪些数据元素进行何种操作。

存储结构有哪4类?每一类和逻辑存储有何关联?

为何还要从存储角度去考虑?

因为具体实现算法时要依赖于相应的存储结构,只有知道了数据元素的存储方式,才能实际访问数据元素和对其进行具体的操作。

数据元素及其关系在计算机内的存储方式,称为数据的存储结构,也称为物理结构

数据结构常用的存储方法有以下4种。

1、顺序存储方法,是和线性结构关联的

逻辑上相邻的数据元素,存储到物理位置相邻的存储单元中,这样的存储方法称为顺序存储方法。

在使用程序设计语言中的一维数组保存线性结构中的数据元素时,采用的就是顺序存储方法。

相应的存储结构称为顺序存储结构。

什么是一维数组?

见,Day11-【软考】数据结构与算法中,如何计算一维数组、二维数组?,中:一、数组与矩阵

2、链式存储方法

逻辑上相邻的数据元素,不要求其存储的物理位置也相邻,通常借助于程序设计语言中的指针指示数据元素间的逻辑关系

这样的存储结构称为链式存储结构。

3、索引存储方法

索引存储方法针对数据元素建立索引表

索引表由索引项组成,索引项指示数据元素所在的物理位置。通过索引项,可以加快查找数据元素的速度。

  • 好像之前学习过这个索引,一时半会又找不到了

4、散列(哈希)存储方法

它根据数据元素的关键字计算出该元素的物理存储位置。

  • 好像之前学习过这个关键字,一时半会又找不到了

    见,Day13-【软考】长文!什么是散列表查找?以及所有的排序算法是怎样的?如何进行堆排序(重点!)?,中:查找数据时,无需查表,根据规则进行计算即可

通常,使用称为散列表的一维数组作为保存元素的结构。

类型和数据项的值的关系是什么?什么是数据类型?

类型值的一个集合

也就是数据项的值,的一个集合

比如,整型就是整数的集合。可以为这些类型定义运算,使用相应的运算符表示对应的操作。

例如,对于整数集合,定义的运算有加法、减法、乘法整除和取模等,由此确定了允许对整数进行的操作。

​ 对于布尔类型(逻辑类型),可以进行的操作包括逻辑与、逻辑或和逻辑非等。

类型加上允许对该类型数据进行的一组操作,称为数据类型

基本类型有哪两种?

所有程序设计语言都会提供基本类型。

  • 若一个类型所表示的值不可再分解,则该类型称为原子类型,

如C语言中的整型、实型等都是原子类型。

  • 与之相对的是结构类型。结构类型的值可以再细分,即它是由若干个分量按某种结构组成的。

例如,C语言中的结构体、数组都是结构类型。

构成结构的分量可以是原子类型的,也可以是结构类型的。

抽象类型是什么?

除了程序设计语言中提供的基本类型以外,还可以定义抽象意义下的类型

并为该类型定义一组相关的操作

这样定义的数据类型称为抽象数据类型(ADT)。

抽象数据类型的定义包括类型的名字及对各个操作的刻画,也就是要明确“做什么”。

对于每个操作,要规定操作的名字、操作执行的前提条件、输入和输出分别是什么等。

每个操作通常表示为一个函数方法

抽象数据类型通常都是程序设计语言中没有提供的类型。

在给出抽象数据类型的定义时,尚未明确所定义类型的数据元素的存储方式,;用顺序,还是链式等等不知道

实现环节,才会给出所定义的类型中涉及的数据元素使用哪种方式保存及如何保存。

有了存储结构,才能具体实现各操作,也就是实现“如何做”。

意思就是,在实现环节,才会进行明确,明确存储结构

再明确函数,或方法

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读(十六):利用线性链条件随机场模型检测阵列比较基因组杂交数据的拷贝数变异

1.论文链接:Detection of Copy Number Variations from Array Comparative Genomic Hybridization Data Using Linear-chain Conditional Random Field Models 摘要: 拷贝数变异(CNV)约占人类基因组的12%。除了CNVs在癌症发展中的…

深入理解若依RuoYi-Vue数据字典设计与实现

深入理解若依数据字典设计与实现 一、Vue2版本主要文件目录 组件目录src/components:数据字典组件、字典标签组件 工具目录src/utils:字典工具类 store目录src/store:字典数据 main.js:字典数据初始化 页面使用字典例子&#xf…

思维练习题

目录 第一章 假设法1.题目1. 如何问问题2. 他们的职业是分别什么3. 谁做对了4. 鞋子的颜色 2.答案 空闲时间写一些思维题来锻炼下思维逻辑(题目均收集自网上,分析推理为自己所写)。 第一章 假设法 一个真实的假设往往可以让事实呈现眼前&…

亲测有效!解决PyCharm下PyEMD安装报错 ModuleNotFoundError: No module named ‘PyEMD‘

解决PyCharm下PyEMD安装报错 PyEMD安装报错解决方案 PyEMD安装报错 PyCharm下通过右键自动安装PyEMD后运行报错ModuleNotFoundError: No module named ‘PyEMD’ 解决方案 通过PyCharm IDE python package搜索EMD-signal,选择版本后点击“install”执行安装

DVC - 数据版本和机器学习实验的命令行工具和 VS Code 扩展

文章目录 一、关于 DVC二、快速启动三、DVC的工作原理四、VS代码扩展五、安装Snapcraft(Linux)Chocolatey (Windows)Brew (mac OS)Anaconda (Any platform)PyPI(Python)Package (Platform-specific)Ubuntu / Debian (deb)Fedora /…

实现前端当中的页面过渡动画

使用 HTML、CSS 和 JavaScript 实现页面过渡动画 在现代网页设计中,用户体验是至关重要的。而页面切换时的平滑过渡效果,不仅能让界面更加美观,也能增强用户的互动体验。 引言 作为一名热爱前端开发的程序员,我一直在寻找能提…

AJAX笔记入门篇

黑马程序员视频地址: 黑马程序员前端AJAX入门到实战全套教程https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p2https://www.bilibili.com/video/BV1MN411y7pw?vd_source…

ts 进阶

吴悠讲编程 : 20分钟TypeScript进阶!无废话快速提升水平 前端速看 https://www.bilibili.com/video/BV1q64y1j7aH

望获实时Linux系统:2024回顾与2025展望

2024年回顾 功能安全认证 2024年4月,望获操作系统V2获ISO26262:2018功能安全产品认证(ASIL B等级),达到国际功能安全标准。 EtherCAT实时性增强 2024年5月,发布通信实时增强组件,EtherCAT总线通信抖…

linux监控脚本+自动触发邮件发送

linux脚本 需求: CPU 负载:使用 uptime 命令,我们可以清楚地了解系统的 CPU 负载情况。这个命令会显示系统在过去 1 分钟、5 分钟和 15 分钟的平均负载。高负载可能意味着系统正在处理大量的任务,可能会导致性能下降或服务响应延迟…

软件工程概论试题一

一、单选 1.下面关于“发布测试”的观点错误的是( )。 A.系统开发团队不应该负责发布测试 B.发布测试是一个确认检查的过程 C.发布测试的目的是让系统供应商确信系统足够好可以使用了 D.发布测试通常采用白盒测试 正答:D 2.下图最有可能是()体系结构风格。 A. C…

iPhone SE(第三代) 设备详情图

目录 产品宣传图内部图——后设备详细信息 产品宣传图 内部图——后 设备详细信息 信息收集于HubWeb.cn

基于物联网设计的疫苗冷链物流监测系统

一、前言 1.1 项目开发背景 随着全球经济的发展和物流行业的不断创新,疫苗和生物制品的运输要求变得越来越高。尤其是疫苗的冷链物流,温度、湿度等环境因素的控制直接关系到疫苗的质量和效力,因此高效、可靠的冷链监控系统显得尤为重要。冷…

ZZNUOJ(C/C++)基础练习1000——1010(详解版)

目录 1000 : AB Problem C语言版 C版 1001 : 植树问题 C语言版 C版 1002 : 简单多项式求和 C语言版 C版 1003 : 两个整数的四则运算 C语言版 C版 1004 : 三位数的数位分离 C语言版 C版 补充代…

mapbox加载geojson,鼠标移入改变颜色,设置样式以及vue中的使用

全国地图json数据下载地址 目录 html加载全部代码 方式一:使用html方式加载geojson 1. 初始化地图 2. 加载geojson数据 设置geojson图层样式,设置type加载数据类型 设置线条 鼠标移入改变颜色,设置图层属性,此处是fill-extru…

Linux进程调度与等待:背后的机制与实现

个人主页:chian-ocean 文章专栏-Linux 前言: 当一个进程发起某种操作(如I/O请求、信号、锁的获取等),但该操作需要的资源暂时不可用时,进程会被操作系统挂起,进入“等待队列”或“阻塞状态”。…

低代码系统-产品架构案例介绍、明道云(十一)

明道云HAP-超级应用平台(Hyper Application Platform),其实就是企业级应用平台,跟微搭类似。 通过自设计底层架构,兼容各种平台,使用低代码做到应用搭建、应用运维。 企业级应用平台最大的特点就是隐藏在冰山下的功能很深&#xf…

DeepSeek大模型技术解析:从架构到应用的全面探索

一、引言 在人工智能领域,大模型的发展日新月异,其中DeepSeek大模型凭借其卓越的性能和广泛的应用场景,迅速成为业界的焦点。本文旨在深入剖析DeepSeek大模型的技术细节,从架构到应用进行全面探索,以期为读者提供一个…

python学opencv|读取图像(四十八)使用cv2.bitwise_xor()函数实现图像按位异或运算

【0】基础定义 按位与运算:两个等长度二进制数上下对齐,全1取1,其余取0。 按位或运算:两个等长度二进制数上下对齐,有1取1,其余取0。 按位取反运算:一个二进制数,0变1,1变0。 按…

DeepSeek辅助学术写作摘要内容

学术摘要写作 摘要是文章的精华,通常在200-250词左右。要包括研究的目的、方法、结果和结论。让AI工具作为某领域内资深的研究专家,编写摘要需要言简意赅,直接概括论文的核心,为读者提供快速了解的窗口。 下面我们使用DeepSeek编…