数据结构的概念和术语

目录

一.前言

二.数据结构的基本概念

三.数据结构的术语


一.前言

        数据结构是一门研究非数值计算的程序设计中计算机的操作对象以及它们之间的关系和操作的学科。数据结构的基本数据结构包括两部分,线性结构跟非线性结构

二.数据结构的基本概念

        数据结构主要包括以下三个方面的内容:

1)数据元素之间的逻辑关系,也称为逻辑结构。

2)数据元素及其关系在计算机内存中的表示(又称为映像),成为数据的物理结构或数据的存储结构。

3)数据的运算和实现,即对数据元素可以施加的操作以及这些操作在相应的存储结构上的实现。

其中,逻辑结构又可以分为四种:

1)集合结构:结构中的数据元素之间除了同属于一个集合的关系外,无任何其它关系。

2)线性结构:结构中的数据元素之间存在着一对一的线性关系。

3)树形结构:结构中的数据元素之间存在着一对多的层次关系。

4)图状结构或网状结构:结构中的数据元素之间存在着多对多的任意关系。

三.数据结构的术语

        1.数据:是能输入计算机并且能被计算机处理的各种符号的集合。

        2.数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

        3.数据项:组成数据元素的基本单位。一个数据元素能够包含若干个数据项。

综上,可以得到这三者之间的大小关系:数据>数据元素>数据项.

下面我们来介绍下与上面三者息息相关的数据对象。所谓数据对象,也就是性质相同的数据元素的集合,它就是数据的一个子集。

在有了数据之后,肯定还是不够的,当然还得拥有数据类型。我们之前所学习的C语言基本上都用的基本数据类型,用来约束变量或常量的取值范围和操作。而在我们数据结构当中,我们又新增了一个抽象数据类型。如下所示:

在知道了抽象数据类型的概念之后,我们就可以对它进行定义了。 抽象数据类型的定义格式就为

ADT  抽象数据类型名{

        数据对象:<数据对象的定义>

        数据关系:<数据关系的定义>

        基本操作:<基本操作的定义>

}ADT 抽象数据类型名

其中,数据对象和数据关系就是定义好一个对象,并列出它们之间的关系。这里我们主要学习其中的基本操作。

基本操作的定义格式如下:

1)基本操作名(参数表)

2)初始条件:<初始条件描述>

3)操作结果:<操作结果描述>
 

 最后,我们再来理清整体思维导图。如下所示:

以上便是我们数据结构的基本概念和术语的所有内容了。 

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

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

相关文章

TikTok养号的网络环境及相关代理IP知识

TikTok作为一个流行的短视频分享平台&#xff0c;其用户量非常庞大&#xff0c;很多商家和个人都会使用TikTok来进行引流和推广。由于TikTok的规则和政策限制了每个用户每天发布视频的数量&#xff0c;因此许多用户会使用多个账号来发布更多的视频以提高曝光率。 然而&#xff…

因果推断 | 双重机器学习(DML)算法原理和实例应用

文章目录 1 引言2 DML算法原理2.1 问题阐述2.2 DML算法 3 DML代码实现3.1 策略变量为0/1变量3.2 策略变量为连续变量 4 总结5 相关阅读 1 引言 小伙伴们&#xff0c;好久不见呀。 距离上次更新已经过去了一个半月&#xff0c;上次发文章时还信誓旦旦地表达自己后续目标是3周更…

【LeetCode、牛客】链表分割、链表的回文结构、160.相交链表

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;数据结构 &#x1f4da;本系列文章为个人学…

LangGPT结构化提示词编写实践

langGPT提示词 # Role: 浮点数比较助手 ## Profile - author: LangGPT - version: 1.0 - language: 中文 - description: 一个专门帮助用户进行浮点数比较的助手&#xff0c;确保LLM能够准确识别和对比浮点数。## Skills 1. 理解浮点数的结构和数值意义。 2. 精…

windows10 安装CUDA教程

如何在windows10系统上安装CUDA? 1、查看电脑的NVIDIA版本 nvidia-smi 2、官网下载所需CUDA版本 官网地址:https://developer.nvidia.com/cuda-toolkit-archive 我们所安装的CUDA版本需要小于等于本机电脑的NVIDIA版本。推荐使用迅雷下载,速度会更快哦。 3、安装步骤

解决Linux桌面初始化问题

问题 启动vnc桌面&#xff0c;提示问题 定位 从[t]csh手册 可以看到&#xff0c;其初始化流程 经定位&#xff0c;是.cshrc的这段代码存在&#xff0c;导致桌面初始化异常。 [wanlin.wangicinfra-cn-172-16-0-115 ~]$ cat .cshrc ...部分省略... # Environment for anac…

无涯·问知财报解读,辅助更加明智的决策

财报解读就像是给公司做一次全面的体检&#xff0c;是理解公司内部运作机制和市场表现的一把钥匙&#xff0c;能够有效帮助投资者、分析师、管理层以及所有市场参与者判断一家公司的健康程度和发展潜力。 星环科技无涯问知的财经库内置了企业年报及财经类信息&#xff0c;并对…

LeetCode/NowCoder-二叉树OJ练习

励志冰檗&#xff1a;形容在清苦的生活环境中激励自己的意志。&#x1f493;&#x1f493;&#x1f493; 目录 说在前面 题目一&#xff1a;单值二叉树 题目二&#xff1a;相同的树 题目三&#xff1a;对称二叉树 题目四&#xff1a;二叉树的前序遍历 题目五&#xff1a;另…

秋招突击——7/24——知识补充——JVM类加载机制

文章目录 引言类加载机制知识点复习类的生命周期1、加载2、连接——验证3、连接——准备4、连接——解析5、初始化 类加载器和类加载机制类加载器类加载机制——双亲委派模型 面试题整理1、类加载是什么2、类加载的过程是什么3、有哪些类加载器&#xff1f;4、双亲委派模型是什…

java面向对象进阶进阶篇--《JDK8,JDK9接口中新增的方法、接口的应用、适配器设计模式》

个人主页→VON 收录专栏→java从入门到起飞 接口→接口和接口与抽象类综合案例 一、JDK8接口中新增的方法 在JDK 8中&#xff0c;接口新增了几个重要的特性和方法&#xff0c;其中最显著的是默认方法&#xff08;Default Methods&#xff09;和静态方法&#xff08;Static Met…

Linux嵌入式学习——数据结构——线性表的链式结构

线性表的链式存储 解决顺序存储的缺点&#xff0c;插入和删除&#xff0c;动态存储问题。 特点&#xff1a; 线性表链式存储结构的特点是一组任意的存储单位存储线性表的数据元素&#xff0c;存储单元可以是连续的&#xff0c;也可以不连续。可以被存储在任意内存未被占…

使用lotusscript控制台吧!

大家好&#xff0c;才是真的好。 我们的公众号通常会涉及到很多lotusScript代码功能&#xff0c;写lotusScript代码时&#xff0c;我常常在想&#xff0c;这行语句明明是对的&#xff0c;为什么会有报错&#xff1f; 为此&#xff0c;常常会在语句中加入on error goto语句&am…

【Git多人协作开发】不同的分支下的多人协作开发模式

目录 0.前言背景 1.开发者1☞完成准备工作&协作开发 1.1查看分支情况 1.2创建本地分支feature-1 1.3三板斧 1.4push推本地分支feature-1到远程仓库 2.开发者2☞完成准备工作&协作开发 2.1创建本地分支feature-2 2.2三板斧 2.2push推送本地feature-2到远程仓库…

黑马JavaWeb企业级开发(知识清单)01——前端介绍,HTML实现标题:排版

文章目录 前言一、认识web前端、HTML、CSS二、VS Code开发工具&#xff08;插件弃用问题&#xff09;三、HTML结构标签介绍1. 标签页标题< title >2. 图片标签< img >1) 常见属性2) src路径书写方式 3. 标题标签< h >4. 水平分页线标签< hr > 四、用Vs…

生成树协议配置与分析

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、相关知识 1、生成树协议简介 生成树协议&#xff08;STP&#xff09;是一种避免数据链路层逻辑环路的机制&#xff0c;它通过信息交互识别环路并…

ZLMRTCClient配置说明与用法(含示例)

webRTC播放视频 后面在项目中会用到通过推拉播放视频流的技术&#xff0c;所以最近预研了一下webRTC 首先需要引入封装好的webRTC客户端的js文件ZLMRTCClient.js 下面是地址需要的自行下载 http://my.zsyou.top/2024/ZLMRTCClient.js 配置说明 new ZLMRTCClient.Endpoint…

AI/机器学习(计算机视觉/NLP)方向面试复习2

1. 用pytorch写一个self-attention 继承pytorch.nn.Module的类 代码&#xff1a; import torch import torch.nn as nn import torch.nn.functional as Fclass SelfAttention(nn.Module):def __init__(self, embed_size): # (B,T,C)super(SelfAttention, self).__init__()sel…

如何优化 Selenium 和 BeautifulSoup 的集成以提高数据抓取的效率?

摘要 在互联网时代&#xff0c;数据的价值日益凸显。对于电商网站如京东&#xff0c;其商品信息、用户评价等数据对于市场分析、产品定位等具有重要意义。然而&#xff0c;由于这些网站通常使用 JavaScript 动态生成内容&#xff0c;传统的爬虫技术难以直接获取到完整数据。本…

手机空号过滤批量查询的意义及方法

手机空号过滤批量查询是现代营销和通信管理中常用的技术手段&#xff0c;旨在通过批量处理手机号码&#xff0c;筛选出活跃号码和空号等无效号码&#xff0c;以提高营销效率和减少不必要的通信成本。以下是关于手机空号过滤批量查询的详细解答&#xff1a; 一、手机空号过滤批…

逆向笔记-某贴

逆向环境搭建 雷电模拟器9LsposedMagisk DeltaMTNP管理器算法助手2.1.2 软件链接&#xff1a; https://llzai.lanzouv.com/iWgV125h6vwj 密码:a0zy 主要注释代码 捕获窗口&#xff0c;查看日志&#xff0c;定位代码 找到show的里面的alertdialog的相关行都注释掉就好了&am…