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

1.1.2数据结构的三要素

一.数据结构的三要素

数据结构这门课着重关注的是数据元素之间的关系,和对这些数据元素的操作,而不关心具体的数据项内容 。

1.逻辑结构

(1)集合结构

(2)线性结构

数据元素之间是一对一的关系。除了第一个元素,所有元素都有唯一前驱;除了最后一个元素,所有元素都有唯一后继 。

(3)树形结构

数据元素之间是一对多的关系。

(4)图状结构

数据元素之间是多对多的关系。

二.数据结构的运算

针对某种逻辑结构,结合实际需求,定义某种运算。

三.物理结构(存储结构)

如何用计算机来表示数据元素的逻辑关系?

1.顺序存储 

 

顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储
单元的邻接关系来体现。

2.链式存储。

链式存储:逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元
素之间的逻辑关系。 

3.索引存储

索引存储:在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项
的一般形式是(关键字,地址) 

4.散列存储

散列存储:根据元素的关键字直接计算出该元素的存储地址,又称哈希(Hash)存储。

1. 若采用顺序存储,则各个数据元素在物理上必须是连续的;若采用非顺序存储,则各个数据元素在物理上可以是离散的。
2.数据的存储结构会影响存储空间分配的方便程度
3.数据的存储结构会影响对数据运算的速度 (在b和d之间插入c)

例如:

运算的定义是针对逻辑结构的,指出运算的功能;
运算的实现是针对存储结构的,指出运算的具体操作步骤。

四.数据类型和抽象数据类型

数据类型是一个值的集合和定义在此集合上的一组操作的总称。
(1)原子类型:其值不可再分的数据类型。

(2)结构类型:其值可以再分解为若干成分(分量)的数据类型。

抽象数据类型 (Abstract Data Type, ADT)是抽象数据组织及与之相关的操作。

 总结:

完! 

相关文章:

  • 将带有 商店idr 商品信息的json导入到mongodb后,能不能根据商店id把所有商品全部提取并转为电子表格
  • 基于Echarts进行图表组件的封装
  • 在Linux/Debian/Ubuntu中出现“Could not get lock /var/lib/dpkg/lock-frontend”问题的解决办法
  • maven项目、idea抽风问题解决
  • 【React性能优化】父组件渲染如何避免子组件不必要的渲染
  • xcrun: error: unable to find utility “simctl“, not a developer tool or in PATH
  • 从硬件角度看Linux的内存管理
  • Map Set(Java篇详解)
  • 自定义代理编辑控件类TSpinBoxDelegate
  • 【区分vue2和vue3下的element UI PageHeader 页头组件,分别详细介绍属性,事件,方法如何使用,并举例】
  • Linux之文本三剑客
  • 基于单片机技术的按键扫描电路分析
  • 缠中说禅李彪08年“假死”具体原因探讨
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • centos7安装mqtt服务端
  • .pyc 想到的一些问题
  • 《剑指offer》分解让复杂问题更简单
  • Git 使用集
  • JDK9: 集成 Jshell 和 Maven 项目.
  • MySQL-事务管理(基础)
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • SQLServer之创建数据库快照
  • 反思总结然后整装待发
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 怎么将电脑中的声音录制成WAV格式
  • 《天龙八部3D》Unity技术方案揭秘
  • Java总结 - String - 这篇请使劲喷我
  • 仓管云——企业云erp功能有哪些?
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​业务双活的数据切换思路设计(下)
  • #Linux(Source Insight安装及工程建立)
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (2)Java 简介
  • (27)4.8 习题课
  • (C#)获取字符编码的类
  • (C)一些题4
  • (补)B+树一些思想
  • (二)Eureka服务搭建,服务注册,服务发现
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (十六)一篇文章学会Java的常用API
  • (一) springboot详细介绍
  • (转)Sublime Text3配置Lua运行环境
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET 解决重复提交问题
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .net快速开发框架源码分享
  • /var/lib/dpkg/lock 锁定问题
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [AI Google] 使用 Gemini 取得更多成就:试用 1.5 Pro 和更多智能功能