1.线性表

文章目录

  • 1.1线性表
  • 1.2线性表的顺序表示和实现

1.1线性表

线性结构的特点: 在数据元素的非空有限集中。

							<1>存在惟一的一个被称为“第一个”的数据元素;<2>存在惟一的一个被称为“最后一个”的数据元素;<3>除第一个之外,集合中的每个数据元素均只有一个前驱;<4>除最后一个之外,集合中的每个数据元素均只有一个后继。

线性表:是最常用且最简单的一种数据结构。简言之,一个线性表是n个数据元素的有限序列。

线性表和数组的区别:
从概念上来看,线性表是一种抽象数据类型;数组是一种具体的数据结构
线性表与数组的逻辑结构是不一样的,线性表是元素之间具有1对1的线性关系的数据元素的集合,而数组是一组数据元素到数组下标的一一映射
并且从物理性质来看,
数组中相邻的元素时连续地存储在内存中的
;线性表只是一个抽象的数学结构,并不具有具体的物理形式,线性表需要通过其它具有物理形式的数据结构来实现。在线性表的具体实现中,表中相邻的元素不一定存储在连续的内存空间中,除非表是用数组来实现。
对于数组,可以利用其下标在一个操作内随机存取任意位置上的元素;对于线性表,只能根据当前元素找到其前驱或后继,因此要存取需要为i的元素,一般不能在一个操作内实现,除非表是用数组实现的。

在稍微复杂的线性表中,一个数据元素可以由若干个数据项组成。在这种情况下常把数据元素称为记录,含有大量记录的线性表又称为文件。并且线性表中的数据元素可以是各种各样的但同一线性表中必定具有相特性,即属同一数据对象,相邻数据元素之间存在着序奇偶关系。(连续的)

线性表中元素的个数n(n ≥ 0 \ge0 0)定义为线性表的长度,n=0时称为空表。在非空表中的每个数据元素都有一个确定的位置,如 a 1 a_1 a1是第一个数据元素, a n a_n an是最后一数据元素, a i a_i ai是第i个数据元素,称i为数据元素 a i a_i ai在线性表中的位序。(在线性表中第几个)

线性表是一个相当灵活的数据结构,它的长度可根据需求增长或者缩短,即对线性表的数据元素不仅可以进行访问,还可以进行插入和删除等。

1.2线性表的顺序表示和实现

线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素。(有点数组的味道)

假设线性表的每个元素需占用l个存储单元,并以所占的第一个单元的存储地址作为数据元素的存储位置(通常称为线性表的起始位置或者基地址)。则线性表中的第i+1个数据元素的存储位置LOC( a i + 1 a_{i+1} ai+1)和第i个数据元素的存储位置LOC( a i a_i ai) 之间满足下列关系:
L O C ( a i + 1 ) = L O C ( a i ) + l L O C ( a i ) = L O C ( a 1 ) + ( i − 1 ) ∗ l LOC(a_{i+1}) = LOC(a_i)+l \\ LOC(a_i) = LOC(a_1)+(i-1)*l LOC(ai+1)=LOC(ai)+lLOC(ai)=LOC(a1)+(i1)l
线性表的这种机内表示称作线性表的顺序存储结构或顺序映像,通常,这种存储结构的线性表称为顺序表(亦可以理解为动态数组,但是是可以插入或者删改的动态数组)。它的特点是,以元素在计算机内”物理位置相邻“来表示线性表中数据元素之间的逻辑关系。

由于线性表的长度可变,且所需最大的存储空间随问题不同而不同,在C语言中可用动态分配的一维数组,

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

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

相关文章

javaee spring 声明式事务管理 自定义异常类

spring配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:context"http://www.springframewo…

无服务架构--Serverless

无服务架构 无服务架构&#xff08;Serverless Architecture&#xff09;即无服务器架构&#xff0c;也被称为函数即服务&#xff08;Function as a Service&#xff0c;FaaS&#xff09;&#xff0c;是一种云计算模型&#xff0c;用于构建和部署应用程序&#xff0c;无需关心…

Ubuntu yolov5 环境配置

查看Ubuntu版本 $ cat /proc/version Linux version 5.4.0-150-generic (builddbos03-amd64-012) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023虚拟机磁盘扩容 因为在环境搭建过程中遇到了磁盘空间不足的问题&a…

伪静态web.config常见规则写法与参数介绍说明

伪静态web.config常见规则写法与参数介绍说明. 示例1&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <configuration><system.webServer><rewrite><rules><rule name"规则 1" stopProcessing"tru…

【linux命令讲解大全】073.“Linux文件搜索工具:bzgrep和egrep的使用方法“

文章目录 bzgrep补充说明语法参数 egrep补充说明语法实例 从零学 python bzgrep 使用正则表达式搜索.bz2压缩包中的文件。 补充说明 bzgrep命令用于在.bz2压缩包中搜索符合正则表达式的内容&#xff0c;并将匹配的行输出到标准输出。 语法 bzgrep <pattern> <bz2…

css flex:1;详解,配合demo效果解答

前言 给设置了display&#xff1a;flex的子组件设置了flex&#xff1a;1&#xff1b;就能让他填满整个容器&#xff0c;如果有多个就平均 flex&#xff1a;1&#xff1b;是另外三个样式属性的简写&#xff0c;等同 flex-grow: 0; flex-shrink: 1; flex-basis: auto;我们就针…

Grafana之魔法:揭秘数据可视化的艺术

在数据驱动的时代&#xff0c;如何有效地呈现和理解数据成为了每个组织和个人的核心任务。Grafana作为一个领先的开源数据可视化工具&#xff0c;为我们提供了强大的功能和灵活性。本文将深入探讨Grafana的魔法&#xff0c;以及它如何帮助我们更好地理解数据。 Grafana简介 G…

容器命令(docker)

文章目录 前言一、docker容器命令0、准备工作1、新建容器并启动2、退出容器3、列出所有的运行的容器4、删除容器5、启动和停止容器的操作 总结 前言 本文主要介绍docker中与容器相关的一些命令&#xff0c;是对狂神课程的一些总结&#xff0c;作为一个手册帮助博主和使用docke…

9月7日扒面经

redis缓存用在哪里&#xff0c;用本地缓存行不行? 数据库查询缓存&#xff0c;减小数据源压力&#xff0c;提高响应速度 页面缓存&#xff1a;将页面的渲染结果缓存在Redis中&#xff0c;以减少页面生成的时间和服务器负载。 频繁计算结果缓存&#xff1a;将频繁计算的结果…

【Unity每日一记】WheelColider组件汽车游戏的关键

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

线性代数的学习和整理18:什么是维度,什么是秩?秩的各种定理秩的计算 (计算部分未完成)

目录 0 问题引出&#xff1a;什么是秩&#xff1f; 概念备注&#xff1a; 1 先厘清&#xff1a;什么是维数&#xff1f; 1.1 真实世界的维度数 1.2 向量空间的维数 1.2.1 向量空间&#xff0c;就是一组最大线性无关的向量组/基张成的空间 1.3 向量α的维数 1.3.1 向量的…

Hbase相关总结

Hbase 1、Hbase的数据写入流程 由客户端发起写入数据的请求, 首先会先连接zookeeper 从zookeeper中获取到当前HMaster的信息,并与HMaster建立连接从HMaster中获取RegionServer列表信息 连接meta表对应的RegionServer地址, 从meta表获取当前要写入的表对应region被那个RegionS…

认识doubbo和rpc

开个新坑&#xff0c;和大家一起学习Dubbo 3.X。我们按照一个由浅入深顺序来学习&#xff0c;先从使用Dubbo开始&#xff0c;再深入Dubbo的核心原理。 今天我们就从认识Dubbo开始&#xff0c;整体的内容可以分为3个部分&#xff1a; Dubbo是什么RPC是什么Dubbo的架构 正式开…

C++ 提高编程 黑马教程(05)

1.模板 &#xff08;1&#xff09;简介 /** C提高编程* 本阶段主要针对C泛型编程 和 STL技术 做详细讲解&#xff0c;探讨C更深层的使用** 1.模板* 概念&#xff1a;模板就是建立通用的模具&#xff0c;大大提高复用性** 特点&#xff1a;* 模板不可以直接使用&#xff…

使用navicate快速将Excel中的数据导入到数据库

表名称上右键&#xff0c;导入向导 这种方式速度还是很快的&#xff0c;18万条数据&#xff0c;3分钟左右就导入进去了。

Oracle集群管理-19C集群禁用numa和大页内存特性

Linux Redhat 7.9关闭内存管理特性 1 关闭大页内存 [rootdb1 ~]# cat /sys/kernel/mm/transparent_hugepage/defrag [always] madvise never [rootdb1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled [always] madvise never echo never > /sys/kernel/mm/transpare…

postgresql-多表连接

postgresql-多表连接 内连接查询左外连接查询右外连接查询全外连接查询交叉连接查询简写 总结 内连接查询 内连接用于返回两个表中匹配的数据行&#xff0c;使用关键字INNER JOIN表示&#xff0c;也可以简写成JOIN&#xff1b; selecte.first_name ,d.department_id fromcps…

Springboot整合shiro

导入依赖 <!-- 引入springboot的web项目的依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> ​ <!-- shiro --><depende…

zookeeper 3.8.1安装和入门使用

1、zookeeper环境搭建&#xff08;Windows单机版&#xff09; 1.1、 前提 必须安装jdk 1.8&#xff0c;配置jdk环境变量&#xff0c;步骤略 1.2、安装zookeeper 地址&#xff1a;https://zookeeper.apache.org/ 1.2.1、选择releases版本 1.2.2、下载安装包并解压 1.2.3、配…

网络丢包问题,敢不敢这样定位?

下午好&#xff0c;我的网工朋友。 所谓丢包&#xff0c;是指在网络数据的收发过程中&#xff0c;由于种种原因&#xff0c;数据包还没传输到应用程序中&#xff0c;就被丢弃了。 这些被丢弃包的数量&#xff0c;除以总的传输包数&#xff0c;也就是我们常说的丢包率。 丢包…