【数据结构】二、线性表:1.顺序表的插入、删除、查找、特点

文章目录

        • 1.3插入
        • 1.4删除
        • 1.5查找
          • 1.5.1按位查找
          • 1.5.2按值查找
        • 1.6特点

1.3插入

把新的数据插入的目标位置之后,把目标位置后面的数据依次向后进行移动。

bool ListInsert(SqList &L,int i,int e){if(i<1||i>L.length+1)	//判断i的范围是否有效return false;if(L.length>=MaxSize)	//当前存储空间已满,不能插入return false;for(int j=L.length; j>=i; j--) //将第i个元素及之后的元素后移L.data[j]=L.data[j-1];L.data[i-1]=e;		//在位置i处放入新的数据eL.length++;			//长度加1return true;
} int main() {SqList Li;		//声明一个顺序表InitList(L);	//初始化顺序表//...此处省略一些代码,插入几个元素printf(ListInsert(L, 3, 3));	//在L的第3位插入3return 0;
}

时间复杂度:

最好情况:新元素插入到表尾,不需要移动元素
i=n+1,循环0次;最好时间复杂度 =O(1);

最坏情况:新元素插入到表头,需要将原有的n个元素全都向后移动
i=1,循环n次:最坏时间复杂度=O(n);

平均情况:假设新元素插入到任何一个位置的概率相同,即i=1,2,3, …,length+1的概率都是p=1/(n+1),循环n次;i=2时,循环 n-1 次; i=3,循环n-2次… i=n+1时,循环0次.

平均循环次数=np+ (n-1)p+(n-2)p+…1·p = n/2
平均时间复杂度= O(n)

1.4删除
bool ListDelete(SqList &L,int i,int &e){ if(i<0||i>L.length)//判断i的范围是否有效return false;e=L.data[i-1];//将被删除的元素赋值给efor(int j=i;j<L.length;j++)//将第i个位置后的元素前移L.data[j-1]=L.data[j];L.length--;//线性表长度减1return true;
}int main() {SqList Li;//声明一个顺序表InitList(L);//初始化顺序表//...此处省略一些代码,插入几个元素int e=-1; 	//用变量e把删除的元素“带回来”if(ListDelete(L, 3, e))printf("已删除第3个元素,删除元素值为=%d\n", e);elseprintf("位序i不合法,删除失败\n");return 0;
}

时间复杂度:O(n)

1.5查找
1.5.1按位查找

GetElem(L,i):按位查找操作。获取表L中第i个位置的元素的值。

ElemType GetElem(SqList L, int i){if(i<0||i>L.length)//判断i的范围是否有效return NULL;return L.data[i-1];
}

时间复杂度:O(1)

1.5.2按值查找

LocateElem(L,e):按值查找操作。在表L中查找具有给定关键字值的元素。

//在顺序表L中查找第一个元素值等于e的元素,并返回其位序
int LocateElem(SeqList L, ElemType e){for(int i=0;i<L.length;1++)if(L.data[i]==e)return i+1;	//数组下标为i的元素值等于e,返回其位序i+1return -1;//退出循环,说明查找失败
}

时间复杂度:O(n)

1.6特点
  1. 随机访问,即可以在O(1)时间内找到第i个元素。
  2. 存储密度高,每个节点只存储数据元素。
  3. 拓展容量不方便(即便采用动态分配的方式实现,拓展长度的时间复杂度也比较高)。
  4. 插入、删除操作不方便,需要移动大量元素。

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

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

相关文章

Linux软件高级编程-网络--TCP通信--day13

TCP发端: socket connect send recv close TCP收端: socket bind listen accept send recv close 1.connect int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 功能: …

使用 CSS 的 line-height 属性来提高可读性

在本文中&#xff0c;您将了解 CSS line-height 属性以及如何使用它来创建视觉上愉悦、易读的文本。 您可能以前见过 line-height 的使用&#xff1a; p {font-size: 16px;line-height: 1.2; }但它是如何工作的&#xff0c;以及在 CSS 中扮演着什么角色呢&#xff1f; CSS 中…

基于LSTM实现春联上联对下联

按照阿光的项目做出了学习笔记&#xff0c;pytorch深度学习实战项目100例 基于LSTM实现春联上联对下联 基于LSTM&#xff08;长短期记忆网络&#xff09;实现春联上联对下联是一种有趣且具有挑战性的任务&#xff0c;它涉及到自然语言处理&#xff08;NLP&#xff09;中的序列…

Android 4.4 以下,OkHttp访问Https报错,设置了sslSocketFactory仍无效的解决方法

背景 Android 4.4 及以下&#xff0c;使用 OkHttp 发送 Https 请求&#xff0c;报以下错误&#xff1a; javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl0x6b712c90: Failure in SSL library, usually a protocol erro…

【Jemter】安装

1.准备前提工作 2.安装和卸载jdk 1&#xff09;安装双击jdk 2&#xff09;添加环境变量 此电脑–属性–高级系统设置–环境变量–系统变量–path删除/新建 C:\Program Files\Java\jdk-1.8\bin C:\Program Files\Java\jdk-1.8\jre 3&#xff09;验证 以防万一要卸载&#xff…

基于yolov5的铁轨缺陷检测系统,可进行图像目标检测,也可进行视屏和摄像检测(pytorch框架)【python源码+UI界面+功能源码详解】

功能演示&#xff1a; 基于yolov5的铁轨缺陷检测系统&#xff0c;系统既能够实现图像检测&#xff0c;也可以进行视屏和摄像实时检测_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于yolov5的铁轨缺陷检测系统是在pytorch框架下实现的&#xff0c;这是一个完整的项目…

Vue 使用Element Plus

1.官网安装 | Element PlusA Vue 3 based component library for designers and developershttps://element-plus.gitee.io/zh-CN/guide/installation.html#%E4%BD%BF%E7%94%A8%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8 npm install element-plus --save2. 全局安装图标 npm ins…

如何避免前端请求明文传输

要在前端发送请求时做到不明文&#xff0c;有以下几种方法&#xff1a; HTTPS 加密传输&#xff1a; 使用 HTTPS 协议发送请求&#xff0c;所有的数据都会在传输过程中进行加密&#xff0c;从而保护数据不以明文形式传输。这样即使数据被截获&#xff0c;黑客也无法直接获取到数…

连接kafka报错:java.io.IOException: Can‘t resolve address:

修改电脑host文件:C:\Windows\System32\drivers\etc\hosts 加上一行 192.168.1.XXX MHA_SLAVE2&#xff08;192.168.1.XXX 这个是安装kafka 的服务器地址&#xff0c;MHA_SLAVE2是kafka的容器id&#xff09;

总结虚拟机的安装步骤:

总结虚拟机的安装配置步骤 保障镜像的基本完整&#xff0c;查看其镜像源是否是完整的&#xff0c;不能使用redhat的配置&#xff0c;原因在于其yum源中可能存在一些配置的消失。然后开始安装虚拟机&#xff0c;虚拟机的软件版本越高其运行的效果也就越好&#xff0c;在进入初始…

极狐GitLab 16.2 重点功能解读,更好的DevOps体验等你来【二】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 极狐GitLab 在去年 7 月份发布了 16.2 版本。此次发布带来了价…

构建可视化工具选择策略

更多的信息总是意味着更好的结果吗&#xff1f;这完全取决于项目所处的环境。 以烘焙为例。当你做蛋糕时&#xff0c;你的原材料经历了许多化学变化和烹制过程。如果任何一个环节出现问题&#xff0c;蛋糕就做不好。但这并不意味着你需要理解食材在分子级别上发生了什么&#…

科技云报道:阿里云降价,京东云跟进,谁能打赢云计算价格战?

科技云报道原创。 就在大家还在回味2月29日阿里云发布“史上最大降价”的惊喜时&#xff0c;京东云连夜发布降价消息&#xff0c;成为第一家跟进的云服务商&#xff0c;其“随便降&#xff0c;比到底&#xff01;”的口号&#xff0c;颇有对垒的意味&#xff0c;直接吹响了云计…

阿里巴巴中国站1688商品详情API:获取数据的关键步骤与技巧

阿里巴巴中国站&#xff08;1688.com&#xff09;是一个大型的B2B电商平台&#xff0c;提供了丰富的商品信息。然而&#xff0c;关于商品详情API的具体使用&#xff0c;通常需要注册成为阿里巴巴的开发者并遵循其API开发文档进行操作。由于API的具体实现和接口可能会随时间变化…

用skopeo检查docker image

文章目录 环境 环境 OCP 4.14.12 yum install skopeo -y在 ibm-dmc-bundle/stable/ibm-dmc-bundle/build/operand_images 处&#xff0c;找到digest号。 比如&#xff0c;找到这一行&#xff1a; DMC_ADDON_API_IMAGE_DIGEST_amd64sha256:f8208890bf4058e17223afe1c40a29df…

java 从零开始手写 RPC (00) 概览 overview

rpc rpc 是基于 netty 实现的 java rpc 框架&#xff0c;类似于 dubbo。 主要用于个人学习&#xff0c;由渐入深&#xff0c;理解 rpc 的底层实现原理。 特性 基于 netty4 的客户端调用服务端 p2p 调用 serial 序列化支持 timeout 超时处理 register center 注册中心 l…

retinaNet FocalLoss源码详解

targets[positive_indices, assigned_annotations[positive_indices, 4].long()] 1 ## 把正样本所对应的锚框所对应的类别的列置为1 # aim torch.randint(0, 1, (1, 80)) # tensor([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0…

react tab选项卡吸顶实现

react tab选项卡吸顶实现&#xff0c;直接上代码&#xff08;代码有注释&#xff09; tsx代码 /* eslint-disable react-hooks/exhaustive-deps */ import React, { useEffect, useState } from "react"; import DocumentTitle from react-document-title import s…

智奇科技工业 Linux 屏更新开机logo

智奇科技工业 Linux 屏更新开机logo 简介制作logo.img文件1、转换格式得到logo.bmp2、使用Linux命令生成img文件 制作rootfs.img文件替换rootfs.img中的logo 生成update.img固件附件 简介 智奇科技的 Linux 屏刷开机logo必须刷img镜像文件&#xff0c;比较复杂。 制作logo.i…

Python教程,python从入门到精通 第1天 温习笔记

1.1 字面量 1.2 注释 1.3 变量 1.4 数据类型 1.5 数据类型转换 1.6 标识符 1.7 运算符 1.8 字符串的三种定义方式 1.9 字符串拼接 1.10 字符串格式化 1.11 掌握格式化字符串的过程中做数字的精度控制 1.12 掌握快速字符串格式化的方式 1.13 字符串格式化&#xff0d;表达式的格…