当前位置: 首页 > news >正文

数据结构的概念和术语

目录

一.前言

二.数据结构的基本概念

三.数据结构的术语


一.前言

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

二.数据结构的基本概念

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

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

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

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

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

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

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

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

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

三.数据结构的术语

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

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

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

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

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

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

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

ADT  抽象数据类型名{

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

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

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

}ADT 抽象数据类型名

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

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

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

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

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

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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 实战练习之Linux上实现shell脚本自动化编程
  • 【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第五十一章 添加设备树节点
  • linux添加普通用户后无法使用K8S的kubectl命令怎么办/Linux普通用户管理K8S/Linux下普通用户无法使用K8S命令
  • PCL-基于超体聚类的LCCP点云分割
  • FFmpeg源码:av_probe_input_format3函数分析
  • element-plus时间组件el-date-picker只能选择当前及之前日期
  • android13 Settings动态显示隐藏某一项
  • springSecurity学习之springSecurity注解使用
  • 谷粒商城实战笔记-54-商品服务-API-三级分类-拖拽效果
  • el-upload 上传图片转成base64 字符串,传给后端,且base64在页面的展示
  • 氧气传感器在汽车制氧检测中的应用
  • 文件包含漏洞及利用
  • java项目数据库 mysql 迁移到 达梦
  • docker相关内容学习
  • 人力资源的智能匹配:Kompas.ai如何革新招聘流程
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • ECS应用管理最佳实践
  • Javascript编码规范
  • Java多线程(4):使用线程池执行定时任务
  • node学习系列之简单文件上传
  • passportjs 源码分析
  • python_bomb----数据类型总结
  • Python实现BT种子转化为磁力链接【实战】
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • spring boot下thymeleaf全局静态变量配置
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Vue2.x学习三:事件处理生命周期钩子
  • Vue--数据传输
  • Web Storage相关
  • 从PHP迁移至Golang - 基础篇
  • 聊聊redis的数据结构的应用
  • 七牛云假注销小指南
  • 前嗅ForeSpider采集配置界面介绍
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 手写双向链表LinkedList的几个常用功能
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 硬币翻转问题,区间操作
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 湖北分布式智能数据采集方法有哪些?
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​字​节​一​面​
  • #android不同版本废弃api,新api。
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C++)八皇后问题
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (阿里云万网)-域名注册购买实名流程
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (七)c52学习之旅-中断