数据结构和顺序表

什么是数据结构

数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

数据元素的三要素

数据结构包括三方面的内容:逻辑结构存储结构数据的运算

逻辑结构

逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。数据的逻辑结构分为线性结构和非线性结构,例如:线性表线性结构集合非线性结构

存储结构

存储结构是指数据结构在计算机中的表示,分为顺序存储链式存储索引存储数列存储

顺序存储

逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。
优点:可以实现随机存储
缺点:只能使用相邻的一整块存储单元。

链式存储

不要求逻辑上相邻的元素在物理位置上也相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。
优点:不会出现碎片现象,能充分利用所有存储单元。
缺点:只能实现顺序存储

索引存储

在存储元素信息的同时,还建立附加的索引表
优点:检索速度快
缺点:附加的索引表额外占用存储空间,增加和删除数据也需要修改索引表,会花费较多时间

数列存储

根据元素的关键字直接计算出该元素的存储地址
优点:检索、增加和删除结点的操作都很快
缺点:若散列函数不好,则可能出现元素存储单元的冲突,解决冲突会增加时间和空间开销

数据的运算

施加在数据上的运算包括运算的定义和实现。运算的定义是针对逻辑结构的,指出运算的功能运算的实现是针对存储结构的,指出运算的具体操作步骤

顺序表

线性表的定义

线性表是具有相同数据类型n(n>=0)个数据元素有限序列
其中唯一的第一个数据元素称为表头元素唯一的最后一个元素称为表尾元素,除第一个元素外,每个元素有且仅有一个直接前驱,除最后一个元素外,每个元素有且仅有一个直接后继。

顺序表分类

  • 静态顺序表
typedef int SLDateType;
#define Maxsize 50
typedef struct SeqList
{SLDateType data[Maxsize];int size;
}SL;
  • 动态顺序表
typedef int SLDateType;
typedef struct SeqList
{SLDateType* a;int size;       int capacity;  
};

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

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

相关文章

Android 第三方组件整理

Banner图: me.militch:banner-holder 注解: com.jakewharton:butterknifecom.jakewharton:butterknife-compiler 拼音: com.github.promeg:tinypinyin 日期: com.haibin:calendarview 二维码扫码: com.journeyapps:zxing…

跨过45分门槛,单独划线让软考证书可能失而复得

在软考的竞技场上,分数是拿证的那道坎,那就是45分!但别急,故事总有转折,国家为了那些在乡村振兴道路上奋力追赶的地区,特别开启了一扇窗——单独划线政策。 单独划线地区分数线并不是固定的,届时…

linux网络命令:httpie详解-简单易用的命令行 HTTP 客户端

目录 一、命令概述 二、基本特点 1、直观和友好的命令语句 2、内置 JSON 支持 3、支持多种请求方法 4、支持 HTTPS、代理和授权验证 5、支持多种请求数据格式 6、自定义 headers 头 7、持久 sessions 存储 8、插件支持 三、安装 1、对于基于 Debian 的系统&#xf…

MQ运行时遇到的问题

遇到的问题描述:我在绑定通道的时候发现了通道绑定失败, 原因: 在代码中我第一次创建交换机的时候类型的默认没有修改成topic类型的,导致后面的代码再去进行注册的时候并没有实现那个类型 解决: 更改代码&#xff0…

中介子方程三十九

XXFXXuXXWXXuXXdXXrXXαXXuXpXXKXηXiXXnXXyXηXuXXrXXaXXrXXuXηXyXXnXXiXηXKXXpXuXXαXXrXXdXXuXWXπXXWXeXyXeXbXπXpXXNXXqXeXXrXXαXXuXpXXKXηXiXXnXXyXηXuXXrXXaXXrXXuXηXyXXnXXiXηXKXXpXuXXαXXrXXeXqXXNXXpXπXbXeXyXeXWXXπXWXuXXdXXrXXαXXuXpXXKXηXiXXnXXyXη…

昇思25天学习打卡营第8天|保存与加载

当模型训练好以后,就可以用来预测了。后续我们在其他端部署的时候不需要再次训练,直接使用训练好的模型进行推理就可以了。 在保存和加载的时候我们都需要传入模型。保存的API是save_checkpoint(model,path), 对应的加载的API是 load_checkpoint(model,…

Java实现发送邮件

引入jar包 <dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version></dependency># 发送邮件配置 mail:smtp:host: smtp.163.comport: 25auth: trueusername: 139*****163.…

vue3+ el-upload封装上传组件

组件功能介绍 上传格式限制上传大小限制上传文件数量限制自定义上传区上传成功回调禁用上传开关与点击上传自定义事件暴露所以上传文件列表&#xff08;uploadList&#xff09;与当前文件数据&#xff08;uploadLatestFile&#xff09; 组件代码Upload.vue <template>&l…

启航数据科学:Jupyter Notebook安装全攻略,轻松入门!

目录 简介安装步骤 安装Python安装pip安装Jupyter Notebook 启动Jupyter Notebook基本使用常见问题总结 简介 Jupyter Notebook 是一个交互式的笔记本环境&#xff0c;支持运行和展示 Python 代码&#xff0c;以及文本、图表和公式。它广泛应用于数据分析、机器学习和科学计算…

在Stimulsoft 报告中连接来自 MySQL 的数据

Stimulsoft Ultimate &#xff08;原Stimulsoft Reports.Ultimate&#xff09;是用于创建报表和仪表板的通用工具集。该产品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他环境的完整工具集。无需比较产品功能&#xff0c;Stimulsoft Ultimate包含了…

Firewalld 防火墙基础

Firewalld 防火墙基础 一、Firewalld概述firewalld 简介firewalld 和 iptables 的关系firewalld 与 iptables service 的区别 二、Firewalld 网络区域区域介绍Firewalld数据处理流程 三、Firewalld 防火墙的配置方法firewall-config 图形工具“区域”选项卡“服务”选项卡改变防…

仓库管理系统24--统计报表

原创不易&#xff0c;打字不易&#xff0c;截图不易&#xff0c;多多点赞&#xff0c;送人玫瑰&#xff0c;留有余香&#xff0c;财务自由明日实现 1、引用LiveCharts 2、创建LiveChartViewModel using GalaSoft.MvvmLight; using LiveCharts.Wpf; using LiveCharts; using Sy…

【SQL注入】 数据库基础

MySQL中的库名 information_schema&#xff08;信息库&#xff09;—— 保存其他数据库里所有信息&#xff08;数据库名、表、字段的数据类型/访问权限&#xff09; mysql—— 存储用户名 密码 host performance_schema——内存数据库 数据放在内存中直接操作的数据库 sys—…

代码随想录训练营Day52

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、回文子串二、最长回文子序列 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 今天是跟着代码随想录刷题的第52天&#xff0c;主要学…

从新手到高手:Scala函数式编程完全指南,Scala 数据类型(4)

1、Scala 数据类型 Scala 与 Java有着相同的数据类型&#xff0c;下表列出了 Scala 支持的数据类型&#xff1a;

智能扫地机器人编译过程中的定位导航技术

智能扫地机器人的定位导航技术主要包括以下几种&#xff0c;下面将分点表示并归纳这些技术及其特点&#xff1a; 1.随机碰撞导航&#xff1a;这是最早期的导航方式&#xff0c;扫地机器人通过随机移动来覆盖地面。 特点&#xff1a;效率较低&#xff0c;容易重复清洁或遗漏区域…

CentOS 7报错Erro:NetworkManager is not running怎么处理?

CentOS 7系统报错Error: NetworkManager is not running&#xff0c;意思是NetworkManager未在运行&#xff0c;NetworkManager是Linux系统上管理网络设置的守护进程&#xff0c;负责自动处理和配置网络连接&#xff0c;未运行可能会导致网络连接问题。遇到报错Error: NetworkM…

运用大数据分析提升返利App的市场营销效果

运用大数据分析提升返利App的市场营销效果 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 引言 随着信息技术的快速发展&#xff0c;大数据分析在各行各业的…

ros1仿真导航机器人 navigation

仅为学习记录和一些自己的思考&#xff0c;不具有参考意义。 1navigation导航框架 2导航设置过程 &#xff08;1&#xff09;启动仿真环境 roslaunch why_simulation why_robocup.launch &#xff08;2&#xff09;启动move_base导航、amcl定位 roslaunch why_simulation nav…

系统运行缓慢CPU飙高等问题的排查思路

系统运行缓慢和CPU飙高问题的排查思路 当系统运行缓慢或CPU使用率飙高时&#xff0c;可能有多种原因导致这一现象。以下是一些排查思路和方法&#xff1a; 1. 检查系统资源使用情况 - 任务管理器&#xff08;Windows&#xff09;或活动监视器&#xff08;Mac&#xff09;或top…