【数据结构1-基本概念和术语】

news2024/11/22 22:10:30

这里写自定义目录标题

  • 0.数据,数据元素,数据项,数据对项,数据结构,逻辑结构,存储结构
  • 1.结构
    • 1.1逻辑结构
    • 1.2存储结构
      • 1.2.1 顺序结构
      • 1.2.2链式结构
    • 1.3数据结构
      • 1.3.1基本数据类型
      • 1.3.2抽象数据类型
      • 1.3.2.1一个简单的抽象数据类型定义及实现(复数)
    • 1.4 算法和算法分析

0.数据,数据元素,数据项,数据对项,数据结构,逻辑结构,存储结构

以下是一个简单的例子来说明这些概念:

假设有一个学生信息管理系统。

  • 数据:指所有学生的信息,包括姓名、年龄、学号、成绩等。
  • 数据元素:每个学生的信息就是一个数据元素,例如某个具体学生的姓名、年龄等。
  • 数据项:学生信息中的具体字段,如姓名就是一个数据项。
  • 数据对象:可以是一个学生,也可以是一个班级的学生集合。
  • 数据结构:指组织和存储学生信息的方式,例如使用链表、数组或树等。
  • 逻辑结构:描述学生之间的关系,如线性结构或树形结构。
  • 存储结构:决定了学生信息在计算机内存中的实际存储方式。

在这个例子中,数据、数据元素、数据项、数据对象是对不同层次信息的描述,而数据结构、逻辑结构和存储结构则关注如何组织和管理这些信息。选择合适的数据结构和存储结构可以提高数据处理的效率和性能。

1.结构

1.1逻辑结构

在这里插入图片描述

1.2存储结构

 数据对象在计算机中的存储表示称为数据的存储结构,也称为物理结构。把数据对象存储到计算机时,通常要求既要存储各数据元素的数据,又要存储数据元素之间的逻辑关系,数据元素在计算机内用一个结点来表示

1.2.1 顺序结构

 顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助
程序设计语言的数组类型来描述

1.2.2链式结构

 顺序存储结构要求所有的元素依次存放在一片连续的存储空间中,而链式存储结构,无需占
用一整块存储空间。但为了表示结点之间的关系,需要给每个结点附加指针字段,用千存放后继
元素的存储地址。所以链式存储结构通常借助于程序设计语言的指针类型来描述。
在这里插入图片描述

1.3数据结构

1.3.1基本数据类型

(略)

1.3.2抽象数据类型

 抽象数据类型(AbstractData Type, ADT) 一般指由用户定义的、表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称,具体包括三部分:数据对象、数据对象上关系的集合以及对数据对象的基本操作的集合。
 运用抽象数据类型描述数据结构,有助千在设计一个软件系统时,不必首先考虑其中包含的数据对象,以及操作在不同处理器中的表示和实现细节,而是在构成软件系统的每个相对独立的模块上定义一组数据和相应的操作,把这些数据的表示和操作细节留在模块内部解决,在更高的层次上进行软件的分析和设计,从而提高软件的整体性能和利用率。

1.3.2.1一个简单的抽象数据类型定义及实现(复数)

在这里插入图片描述
在这里插入图片描述

1.4 算法和算法分析

(略去):后期熟练了自行理解

  • 算法 (Algorithm) 是为了解决某类问题而规定的一个有限长的操作序列。
  • 重点是时间复杂度和空间复杂度的理解和计算
  • 所谓的算法分析并非精确统计算法实际执行所需时间,而是针对算法中语句的执行 次数做出估计,从中得到算法执行时间的信息
    重点理解
    在这里插入图片描述在这里插入图片描述
  • 对算法时间复杂度的度量,人们更关心的是最坏情况下和平均情况下的时间复杂度。然而在
    很多情况下,算法的平均时间复杂度难千确定。因此,通常只讨论算法在最坏情况下的时间复杂
    度,即分析在最坏情况下,算法执行时间的上界。在本书后面内容中讨论的时间复杂度,除特别
    指明外,均指最坏情况下的时间复杂度。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法学习——LeetCode力扣补充篇9(912. 排序数组、21. 合并两个有序链表、33. 搜索旋转排序数组、103. 二叉树的锯齿形层序遍历)

算法学习——LeetCode力扣补充篇9 912. 排序数组 912. 排序数组 - 力扣(LeetCode) 描述 给你一个整数数组 nums,请你将该数组升序排列。 示例 示例 1: 输入:nums [5,2,3,1] 输出:[1,2,3,5] 示例 2&…

Qt+vstudio2022的报错信息积累

从今天开始记录一下平常开发工作中的报错记录,后续有错误动态补充! 报错信息:【MSB8041】此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体系结构安装它们。 解决: 背景:换…

4个步骤:如何使用 SwiftSoup 和爬虫代理获取网站视频

摘要/导言 在本文中,我们将探讨如何使用 SwiftSoup 库和爬虫代理技术来获取网站上的视频资源。我们将介绍一种简洁、可靠的方法,以及实现这一目标所需的步骤。 背景/引言 随着互联网的迅速发展,爬虫技术在今天的数字世界中扮演着越来越重要…

潮玩宇宙小程序定制大逃杀游戏APP开发H5游戏

游戏名称:潮玩宇宙大逃杀 游戏类型:休闲竞技类小游戏 游戏目标:玩家通过选择房间躲避杀手,生存下来并瓜分被杀房间的元宝。 核心功能 房间选择:玩家进入游戏后,可以选择一间房间躲避杀手。杀手行动&…

十大排序——7.希尔排序

下面我们来看一下希尔排序 目录 1.介绍 2.代码实现 3.总结与思考 1.介绍 希尔排序是插入排序的一种优化,可以理解为是一种分组的插入排序。 希尔排序的要点: 简单来说,就是分组实现插入,每组元素的间隙称为gap,…

文件服务: txt文件预览乱码问题

文章目录 一、背景二、解决方案1、转换流(解决代码与文件编码不一致读取乱码的问题)2、获取文本文件的字符编码 一、背景 在springboot项目中使用springmvc web.resources的形式进行文件访问。本地上传txt文件编码格式为GB2312(中文简体),浏…

探索数据结构:BF与KMP的灵活应用

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty’s blog 1. 什么是字符串匹配算法 字符串匹配是计算机科学中的一个基础概念&…

超高效空气过滤器(ULPA)在半导体制造领域需求旺盛 滤芯为其重要组成部分

超高效空气过滤器(ULPA)在半导体制造领域需求旺盛 滤芯为其重要组成部分 超高效空气过滤器(ULPA)又称超低穿透率空气过滤器,指含有超高效过滤网,对0.1微米粒子捕集效率在99.999%以上的空气过滤器。与高效空…

神经网络压缩图像

简介 典型的压缩管道由四个组件组成: 编码:输入图像 x x x通过编码器函数 ε \varepsilon ε,将其转换为潜在表示 z z z。 量化:截断 z z z以丢弃一些不重要的信息 熵编码:使用某种形式的熵编码(例如&…

基于springboot实现信息化在线教学平台设计【项目源码+论文说明】计算机毕业设计

基于springboot实现信息化在线教学平台设计演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了信息化在线教学平台的开发全过程。通过分析信息化在线教学平台管理的不足,创建了一个计算机管理信息…

【devops】 阿里云挂载云盘 | 扩展系统硬盘 | 不重启服务器增加硬盘容量

扩容分区和文件系统(Linux) 文档地址 https://help.aliyun.com/zh/ecs/user-guide/extend-the-partitions-and-file-systems-of-disks-on-a-linux-instance?spm5176.smartservice_service_robot_chat_new.help.dexternal.4ac4f625Ol66kL#50541782adxmp…

SSH KEY 添加

mac: Add SSH KEY公钥 1、 先cd进.ssh文件夹,查看电脑中是否存在之前添加的公钥文件(id_rsa.pub、id_rsa),要是存在,就先删除: jingchengxindeMacBook-Pro:~ jingchengxin$ cd .ssh jingchengxindeMacBook-Pro:.ssh jingchen…

视频汇聚/安防视频监控云平台EasyCVR云端录像播放与下载的接口调用方法

视频汇聚/安防视频监控云平台EasyCVR支持多协议接入、可分发多格式的视频流,平台支持高清视频的接入、管理、共享,支持7*24小时不间断监控。视频监控管理平台EasyCVR可提供实时远程视频监控、录像、回放与存储、告警、语音对讲、云台控制、平台级联、磁盘…

格瑞纳电子邀您参观2024杭州快递物流展

参展企业介绍 北京格瑞纳电子产品有限公司是一家立足于专业科学技术领域集产品代理、培训咨询和个性化增值服务的高科技公司,于2009年成立于北京,立足于复杂系统仿真领域,主营业务以仿真分析软件产品为中心,提供集产品研发、销售…

学习Rust的第5天:控制流

Control flow, as the name suggests controls the flow of the program, based on a condition. 控制流,顾名思义,根据条件控制程序的流。 If expression If表达式 An if expression is used when you want to execute a block of code if a condition …

华为云CodeArts IDE For Python 快速使用指南

CodeArts IDE 带有 Python 扩展,为 Python 语言提供了广泛的支持。Python 扩展可以利用 CodeArts IDE 的代码补全、验证、调试和单元测试等特性,与多种 Python 解释器协同工作,轻松切换包括虚拟环境和 conda 环境的 Python 环境。本文简要概述…

Java基础_22线程死锁,object类下面线程方法,生产者消费者

周二的回顾 1.线程的概念是进程(应用程序软件)最小的基本单位 2.在Java中代码咋写线程1.继承Thread类2.实现Runnable接口3.实现Callable接口 3.Thread相关的方法4.同步锁目的: 当多个线程操作同一个资源的时候,会发生数据不安全性!!&#x…

FAOBlue---脂肪酸β-氧化(FAO)活性荧光定量试剂

Funakoshi品牌的FAOBlue是一款可通过荧光成像将活细胞内脂肪酸β-氧化(FAO)活性可视化的试剂。只需将产品添加到培养基中,即可通过荧光观察定量脂肪酸β-氧化活性。 FAO(脂肪酸β-氧化,Fatty acid beta-oxidation&…

LeetCode——965. 单值二叉树

题目- 力扣(LeetCode) 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回 true;否则返回 false。 示例 1: 输入:[1,1,1,1,1,null,1] 输出&a…

Java工程师常见面试题:Java基础(一)

1、JDK 和 JRE 有什么区别? JDK是Java开发工具包,它包含了JRE和开发工具(如javac编译器和java程序运行工具等),主要用于Java程序的开发。而JRE是Java运行环境,它只包含了运行Java程序所必须的环境&#xf…