简单介绍数据结构的基本概念

数据结构的基本概念

常用术语

数据

数据(Data)是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。例如:整数、字符串、图形、图像、声音和动画等

数据元素

数据元素(Data Element)是数据的基本单位,有时也可被称为元素、记录等。

在计算机中通常作为一个整体进行考虑和处理,数据元素用于完整地描述一个对象,如学生信息表中的一名学生记录

数据项

数据项(Data Item)是组成数据元素的、有独立含义的、不可分割的最小单位。例如,课程表中的课程号、课程名等

数据对象

数据对象(Data Object)是性质相同的数据元素的集合,是数据的一个子集。例如:整数数据对象是集合N={0,±1,±2,…}

数据结构

数据结构(Data Structure)是相互之间存在一种或多种特定关系的数据元素的集合,也可以说数据结构是带“结构”的数据元素的集合,“结构”是指数据元素之间存在的关系

数据结构包括逻辑结构存储结构两个层次。

逻辑结构

数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。

数据的逻辑结构有两个要素:

  • 数据元素
  • 关系:关系是指数据元素间的逻辑关系

根据数据元素之间关系的不同特性,通常有四类基本结构,如图所示,其复杂程度依次递进

  • 集合结构:数据元素之间除了“属于同一集合”的关系外,别无其他关系。例如,确定一个员工是否为销售部员工,只需将销售部看作一个集合结构

    在这里插入图片描述

  • 线性结构:线性结构作为最常用的数据结构,其特点是数据元素只按先后次序连接,数据元素之间存在一对一的关系。例如,将学生的基本信息数据按照学号的先后顺序进行排列,将组成一个线性结构,如线性表、栈、队列和字符串等

    在这里插入图片描述

  • 非线性结构:非线性结构,数学用语,其逻辑特征是一个数据元素可能有多个直接前驱和多个直接后续。其中对于这种数据结构中的任意一个数据元素;与它相邻且在它之前的数据元素称为该数据元素的直接前驱;对于该结构中任意一个数据元素,与它相邻且在它之后的数据元素称为该数据元素的直接后续。非线性结构可分为树结构和图结构

    • 树结构:树结构的数据元素是分层次的纵向连接,数据元素之间存在一对多的关系。例如,经理管理多个组长,每位组长管理多个员工,这就构成树结构

      在这里插入图片描述

    • 图结构或网状结构:图结构或网状结构的数据元素的有各种各样的复杂连接,数据之间存在多对多的关系。例如,一门课程同时有若干个学生选修,一个学生可以同时选修多门课程,从而构成图结构或网状结构

      在这里插入图片描述

存储结构

数据对象在计算机中的存储表示称为数据的存储结构,也称为物理结构.

数据元素在计算机中有两种基本的存储结构

  • 顺序存储结构:顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述
  • 链式存储结构:为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后续元素的存储地址。所以链式存储结构通常借助于程序设计语言的指针类型

顺序存储结构要求所有的元素依次存放在一片连续的存储空间中。链式存储结构无须占用一整块存储空间

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

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

相关文章

每日OJ题_算法_递归③力扣206. 反转链表

目录 力扣206. 反转链表 解析代码 力扣206. 反转链表 206. 反转链表 LCR 024. 反转链表 难度 简单 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,…

【机构内部教程】Jmeter性能测试【一】:性能测试全套教程

性能测试的概念 性能测试是指通过特定方式,对被测系统按照一定策略施加压力,获取系统 响应时间、TPS(Transaction Per Second)、吞吐量、资源利用率等性能指标,以期保证生产系统的性能能够满足用户需求的过程。 性能…

【漏洞复现-通达OA】通达OA getcallist存在前台SQL注入漏洞

一、漏洞简介 通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台。通达OA为各行业不同规模的众多用户提供信息化管理能力,包括流程审批、行政办公、日常事务、数据统计…

放弃Dubbo,选择最流行的Spring Cloud微服务架构实践与经验总结

Spring For All 社区作者: 纯洁,原文地址 传送门 上次写了一篇文章叫Spring Cloud在国内中小型公司能用起来吗?介绍了Spring Cloud是否能在中小公司使用起来,这篇文章是它的姊妹篇。其实我们在这条路上已经走了一年多,从16年初到…

《游戏引擎架构》--学习

内存管理 优化动态内存分配 维持最低限度的堆分配,并且永不在紧凑循环中使用堆分配 容器 迭代器 未完待续。。。

Stable Diffusion ComfyUI安装详细教程

上一篇文章介绍了sd-webui的安装教程,但学习一下ComfyUI这种节点流程式的对理解AI绘画有较大帮助,而且后期排查错误会更加方便,熟练后用这种方式做AI绘画可玩性会更多。 文章目录 一、安装包说明二、安装文件介绍三、安装步骤四、汉化五、云主…

Spring 事务原理总结七

今天是二零二四年二月十八,农历正月初九。同时今天也是农历新年假期后的第一个工作日。我的内心既兴奋,又担忧,更急躁。兴奋是因为假期后的第一个工作日工作轻松;担忧是因为经过了这么长时间,我依旧没搞明白Spring事务…

【论文解读】Latency-Aware Collaborative Perception

Latency-Aware Collaborative Perception 摘要引言方法SystemSyncNet 实验 摘要 协作感知最近显示出提高单智能体感知感知能力的巨大潜力。现有的协同感知方法通常考虑理想的通信环境。然而,在实践中,通信系统不可避免地存在延迟问题,导致安…

人工智能技术应用笔记(一):SORA已来,AI将开启新纪元

目录 01. OpenAI王炸级产品视频生成模型Sora发布 02. Sora发布的潜在影响 ▎C端 / 对于普通人 ▎B端 / 对于商业公司 03. 该如何看待Sora? 1.拥抱变化,让自己成为身边最懂AI的人 2.想象自己是一家一人公司的创始人 3.保持好奇心&…

抓包分析 TCP 协议

TCP 协议是在传输层中,一种面向连接的、可靠的、基于字节流的传输层通信协议。 环境准备 对接口测试工具进行分类,可以如下几类: 网络嗅探工具:tcpdump,wireshark 代理工具:fiddler,charles&…

面试:正确率能很好的评估分类算法吗

正确率(accuracy) 正确率是我们最常见的评价指标,accuracy (TPTN)/(PN),正确率是被分对的样本数在所有样本数中的占比,通常来说,正确率越高,分类器越好。 不同算法有不同特点,在不同…

springboot745简历系统

springboot745简历系统 获取源码——》公主号:计算机专业毕设大全

【JavaEE】_HTTP响应

目录 1. 首行 2. 报头header 3.空行 4. 正文body 1. 首行 响应首行:版本号状态码状态码描述; HTTP状态码描述了这次响应的结果(比如成功、失败,以及失败原因等); 1. HTTP状态码有: &#…

软件测试知识总结

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号:互联网杂货铺,回复1 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、黑盒测试、白盒测试、灰盒测试 1.1 黑盒测试 黑盒测…

【c++ debug】记一次protobuf结构相关的coredump问题

文章目录 1. 问题现象2. 问题描述3. 问题分析4. 问题根因5. 问题修复6. 补充:类成员变量定义为引用类型 1. 问题现象 其中curr_lanes是一个目标上一帧的当前车道current_lanes_curr_lane是lane_id对应的LaneInfo信息现象:在lane_info->lane().success…

Stackoverflow(1)-根据RequestBody的内容来区分使用哪个资源

如果使用Spring,可以通过RequestBody将请求体的json转换为Java对象,但如果URI相同,而请求体的内容不同,应该怎么办?问题来源(stackoverflow):Spring RequestBody without using a pojo?稍微研究了一下&…

浅析Linux设备驱动:IO端口和IO内存

文章目录 概述IO端口和IO内存的区别 IO资源管理IO资源类型IO端口资源IO内存资源 IO资源分配 IO端口访问IO端口操作函数 IO内存访问IO内存操作函数 相关参考 概述 在计算机系统中,外部设备通常会提供一组寄存器或内存用于处理器配置和访问设备功能。这些寄存器或内存…

由斐波那契数列探究递推与递归

斐波那契数列定义: 斐波那契数列大家都非常熟悉。它的定义是: 对于给定的整数 x ,我们希望求出: f ( 1 ) f ( 2 ) … f ( x ) f(1)f(2)…f(x) f(1)f(2)…f(x) 的值。 有两种方法,分别是递推(迭代)与递归 具体解释如下图 备注…

JDBC核心技术

第1章 JDBC概述 第2章 获取数据库连接 第3章 使用PreparedStatement实现CRUD操作 第4章 操作BLOB类型字段 第5章 批量插入 第6章 数据库事务 第7章 DAO及相关实现类 第8章 数据库连接池 第9章 Apache-DBUtils实现CRUD操作图像 小部件

蜂蜜器实验-驱动代码测试

一. 简介 上一篇文章实现了蜂鸣器驱动代码,实现关闭蜂鸣器与打开功能。文章地址如下: 蜂鸣器驱动代码完善-CSDN博客 本文对所实现的蜂鸣器驱动代码进行测试。 二. 蜂鸣器驱动代码测试 1. 准备应用程序 这里应用程序还使用 前面实现所使用的Led应用…