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

数据结构的基本概念

常用术语

数据

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

数据元素

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

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

数据项

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

数据对象

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

数据结构

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

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

逻辑结构

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

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

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

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

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

    在这里插入图片描述

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

    在这里插入图片描述

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

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

      在这里插入图片描述

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

      在这里插入图片描述

存储结构

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

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

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

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

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

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

相关文章

【软考】软件过程

目录 一、说明二、能力成熟度模型(CMM)三、能力成熟度模型集成(CMMI)3.1 说明3.2 阶段式模型3.2 连续式模型 一、说明 1.遵循一系列可预测的步骤(路线图),有助于及时交付高质量的产品 2.软件开发中所遵循的路线图称为软…

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

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

顺子日期 蓝桥杯

调用API 思路: 设置Calendar的属性,获取Calendar的毫秒数,转换成指定格式的字符串(yyyyMMdd),判断字符串中是否包含符合条件的,若有就1, 迭代: 每次循环给Calendar加上一天即可 import java.text.SimpleDateFormat; im…

Python中的Lambda函数

Python中的Lambda函数 Python中的Lambda函数是一种小型匿名函数,它是通过关键字lambda来定义的。Lambda函数可以接受任意数量的参数,但只能有一个表达式。 Lambda函数的语法 Lambda函数的语法非常简单,基本形式如下: lambda a…

windows_tcp简单代码

文章内容: 一个简单的显示windows平台下ctcp的代码 客户端代码已上传服务器代码未验证方便自己日后使用 客户端: #if _MSC_VER >1600 //VS2010版本号是1600#pragma execution_character_set("utf-8") #endif #include "mynetdump.h&…

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

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

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

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

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

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

vue3 之 数据格式化函数

在很多项目中,都会有数据字典表,前端通过请求后端拿到数据字典表里的数据,一般在页面列表上面状态数据都会是返回的数字,前端需要把数字转换成字典表里对应的数据值,下面写了一个前端写死的数据,stateMap里…

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

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

C++八股—怎么把左值变成右值

左值(lvalue)和右值(rvalue)是C中一个重要的概念,用于描述表达式的属性。简单来说: 左值(lvalue):指向内存位置的表达式,可以出现在赋值运算符的左边或右边。…

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&…

JavaScript:隐式类型转换与显式类型转换

文章目录 隐式类型转换(Implicit Type Conversion)1、字符串与数字的转换2、非布尔值到布尔值的转换3、在相等性比较中的转换4、对象到基础类型的转换5、在算术运算符中的其他转换 显式类型转换(Explicit Type Conversion)1、Numb…

学员回访 | 天爷啊!我找到月薪16K的工作了!

终于轮到我说了!!!我!!!这一刻!!!我感觉全世界都没有我幸福!!!普通二本学历的我,竟然真的找到了一个16k的工作&#xff01…

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

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

上传包到npm

切换自己的npm源(需要切到npm源 我npm注册的账户) 切换为npm源:npm config set registry https://registry.npmjs.org 添加用户 npm adduser 查看是否成功 npm who am i 发包 npm publish 删除指定包版本 npm unpublish 【包名版本号】