85.【C语言】数据结构之顺序表的中间插入和删除及遍历查找
目录
3.操作顺序表
1.分析中间插入函数
函数的参数
代码示例
图片分析
main.c部分改为
在SeqList.h添加SLInsert函数的声明
运行结果
2.分析中间删除函数
函数的参数
代码示例
图片分析
main.c部分改为
在SeqList.h添加SLErase函数的声明
运行结果
承接84.【C语言】数据结构之顺序表的头部插入和删除文章
3.操作顺序表
1.分析中间插入函数
函数的参数
中间的位置:结构体指针SL* ps(这样就可以使用ps->a[...])和插入的位置int pos
插入的元素数据:SLDataType x
代码示例
void SLInsert(SL* ps, int pos, SLDataType x)
{assert(ps);//pos==0为头插,pos==ps-<size为尾插assert(pos >= 0 && pos <= ps->size);SLCheckCapacity(ps);int end = ps->size - 1;while (pos <= end){ps->a[end + 1] = ps->a[end];end--;}ps->a[pos] = x;//在a[pos]处插入新元素ps->size++;
}
图片分析

main.c部分改为
void TestSeqList1()
{SL s;SLInit(&s);SLPushBack(&s, 1);SLPushBack(&s, 2);SLPushBack(&s, 3);SLPushBack(&s, 4);SLPushBack(&s, 5);SLPrint(&s);SLInsert(&s,1,6);SLPrint(&s);SLDestory(&s);
}
在SeqList.h添加SLInsert函数的声明
运行结果
在中间插入了一个6

有了SLInsert函数可以对84.【C语言】数据结构之顺序表的头部插入和删除文章的SLPushFront函数做简化
void SLPushFront(SL* ps,SLDataType x)
{assert(ps);SLCheckCapacity(ps);SLInsert(ps, 0, x);
}
同理对SLPushBack函数
void SLPushBack(SL* ps, SLDataType x)
{assert(ps);SLCheckCapacity(ps);SLInsert(ps, ps->size, x);
}
2.分析中间删除函数
函数的参数
同中间插入函数
代码示例
void SLErase(SL* ps, int pos)
{assert(ps);assert(0 <= pos && pos < ps->size);int begin = pos + 1;while (begin < ps->size){ps->a[begin - 1] = ps->a[begin];begin++;}ps->size--;//ps->size不用单独检查是否为负//在assert断言中,已经交代了pos < ps->size,pos不可能为负
}
图片分析

main.c部分改为
void TestSeqList1()
{SL s;SLInit(&s);SLPushBack(&s, 1);SLPushBack(&s, 2);SLPushBack(&s, 3);SLPushBack(&s, 4);SLPushBack(&s, 5);SLPrint(&s);SLErase(&s,1);SLPrint(&s);SLDestory(&s);
}
在SeqList.h添加SLErase函数的声明
运行结果

有了SLErase函数可以对84.【C语言】数据结构之顺序表的头部插入和删除文章的SLPopFront函数做简化
void SLPopFront(SL * ps)
{SLErase(ps, 0);
}
同理对SLPopBack函数
void SLPopBack(SL* ps)
{SLErase(ps, ps->size - 1);
}
3.分析遍历查找函数
代码示例
int SLFind(SL* ps, SLDataType find)
{assert(ps);for (int i = 0; i < ps->size; i++){if (ps->a[i] == find)return find;}//遍历查找return -1;//查不到则返回-1
}
在SeqList.h添加SLFind函数的声明
相关文章:
85.【C语言】数据结构之顺序表的中间插入和删除及遍历查找
目录 3.操作顺序表 1.分析中间插入函数 函数的参数 代码示例 图片分析 main.c部分改为 在SeqList.h添加SLInsert函数的声明 运行结果 2.分析中间删除函数 函数的参数 代码示例 图片分析 main.c部分改为 在SeqList.h添加SLErase函数的声明 运行结果 承接84.【C语…...
触觉智能Purple Pi OH鸿蒙开发板成功适配OpenHarmony5.0 Release,开启新征程!
10月22日,触觉智能Purple Pi OH鸿蒙开发板迎来了重大系统版本升级,成功适配OpenHarmony5.0 Release,为嵌入式开发者和科技爱好者们带来了全新的机遇与挑战! 触觉智能 Purple Pi OH 开发板一直以来都以其高品质和超高性价比而著称。…...
分布式解决方案---分布式ID
目录 是什么 特点 全局唯一 高并发 高可用 怎么做 实现方案 是什么 分布式ID是指在分布式系统中生成的唯一标识符。由于分布式系统的特点,多个节点可能会同时生成ID,因此需要确保每个ID在整个系统中是唯一的。 重点就是唯一性!&#x…...
httpd服务
文章目录 1、搭建一个网络yum源2、基于域名访问的虚拟主机3、基于端口来访问域名4、搭建个人网站5、加密访问显示自定义网页内容 1、搭建一个网络yum源 [roottest01 conf.d]# cat repo.conf <virtualhost *:80>documentroot /var/www/html/ServerName 10.104.43.154ali…...
Linux系统安装Redis详细操作步骤(二进制发布包安装方式)
安装方式介绍 在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下: 安装方式特点二进制发布包安装软件已经针对具体平台编译打包发布,只要解压,修改配置即可rpm安装软件已经按照redhat的包管理规范进…...
Jenkins和Gitlab整合构建CI/CD流水线
配置环境 虚拟机建议4G起步 192.168.58.199 192.168.58.200 部署Jenkins 部署Jenkins参考这篇文章:Jenkins安装部署_connecting to pkg.jenkins.io (pkg.jenkins.io)|151.-CSDN博客 安装完毕之后根据下图操作 选择git,添加git仓库克隆url,选…...
14 C语言中的关键字
C语言中的关键字 在C语言中,关键字是一些预定义的单词,它们具有特殊的意义和用途。这些关键字不能用作标识符,比如变量名、函数名等,因为它们被保留用于特定的语言结构和操作。 关键字的分类 C语言的关键字可以分为几个主要类别…...
(11)(2.1.7) FETtec OneWire ESCs(一)
文章目录 前言 1 去哪里买 2 连接 3 组态 前言 !Note 此功能在固件版本 4.1.1 及更高版本上可用。 OneWire 是 FETtec 的 ESC 双向通信协议(ESC bi-directional communication protocol)。 FETtec OneWire ESC 的遥测信息被发送回自动驾驶仪: 电…...
Python 异步编程:使用 `asyncio.to_thread` 和 `asyncio.Queue` 处理任务队列
Python 异步编程:使用 asyncio.to_thread 和 asyncio.Queue 处理任务队列 1. 什么是 asyncio.to_thread?2. 什么是 asyncio.Queue?3. 示例代码:使用 asyncio.to_thread 和 asyncio.Queue 处理任务队列示例代码代码解释运行结果 4.…...
【问题解决】Flink在linux上运行成功但是无法访问webUI界面
一,问题 在搭建Flink的时候,已经在linux服务器上运行了./start-cluster.sh, 而且日志显示已经成功了。 服务器上也没有开启防火墙 正常来说应该能通过ip:8081来访问(8081是Flink WebUI的默认端口),但是访问的时候,显示…...
【问题解决】pnpm : 无法将“pnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
今天配置完poetry环境变量之后pnpm不能用了 具体报错 pnpm : 无法将“pnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1pnpm run dev~~~~ Ca…...
微信网页授权回调地址放多个参数的方法
https://open.weixin.qq.com/connect/oauth2/authorize?appidAPPID&redirect_uriREDIRECT_URI&response_typecode&scopeSCOPE&stateSTATE#wechat_redirect 跳转后地址 redirect_uri/?codeCODE&stateSTATE。 redirect_uri如果不进行urlencode编码, 跳转后…...
相机工作距离计算
镜头 基础参数 焦距 例如,使用1英寸靶面(12.8mm x 9.6mm)的相机,工作距离WD是300mm,视野FOV的高度是120mm,那么光学放大倍率𝛽 9.6𝑚𝑚/120𝑚𝑚0.08 ,…...
Pandas模块之垂直或水平交错条形图
目录 df.plot() 函数Pandas模块之垂直条形图Pandas模块之水平交错条形图 df.plot() 函数 df.plot() 是 Pandas 中的一个函数,用于绘制数据框中的数据。它是基于 Matplotlib 库构建的,可以轻松地创建各种类型的图表,包括折线图、柱状图、散点…...
ArcGIS必会的选择要素方法(AND、OR、R、IN等)位置选择等
今天来看看ArcGIS中的几个选择的重要使用方法 1、常规选择、 2、模糊查询、 3、组合复合条件查询(AND、OR、IN), 4、空值NULL查询 5、位置选择 推荐学习: 以梦为马,超过万名学员学习ArcGIS入门到实战的应用课程…...
快速创建一个微信小程序,详细步骤以及示范程序代码
创建一个微信小程序涉及前端和后端的搭建与联调。以下是一个快速创建微信小程序的详细步骤以及示范程序代码。 一、注册微信小程序账号 前往微信公众平台,注册一个小程序账号并完成相关设置。注册完成后,获取小程序的AppID,这是后续开发过程…...
【继承】讲解
访问控制 传递下去可以一共分为四个特性 公有保护私有存在但不可见 虽然它们各自的特性不同,能不能使用也另说,但是在建立类对象的时候,系统都会申请相应的内存,也就是说,无论它们能不能用,它们都存在。 …...
无人机之低空管控技术
无人机的低空管控技术是对低空飞行活动进行管理和控制的一系列措施和技术的总称,旨在确保低空飞行活动的安全、有序和高效。 一、主要技术手段 雷达系统监测 原理:雷达是利用电磁波探测目标的电子设备,通过发射电磁波对目标进行照射并接收…...
探索 DevOps:从概念到实践
引言 在现代软件开发的世界中,DevOps 已成为一个热门词汇。它不仅改变了开发和运维的合作方式,还显著提升了软件交付的速度和质量。那么,究竟什么是 DevOps?它的定义和目标是什么?本文将为你详细解释 DevOps 的基本概念,并通过代码示例和图片帮助你更好地理解这一重要的…...
联通国际云视频:高清、稳定、易用的云端会议平台
一、产品概述 中国联通国际公司推出的云视频产品,是一款基于先进云计算技术的云会议架构平台。它旨在为用户提供高品质、方便快捷、简单易用、灵活多变、稳定可靠的视频通讯解决方案,满足用户随时随地高效沟通的需求。 二、主要功能 音视频及数据共享 …...
【信息科学与工程学】【制造工程】【通信工程】第一百零一篇 2nm 200Tbps+核心交换机全尺度参数宇宙构建框架02
编号 尺度/层级 参数类型 参数名称 数学表达式/物理模型/关联描述 典型值/范围 (目标) 单位 核心关联参数 依赖关系 互斥/协同/传递关系 设计/制造/应用要求 测试/验证方法 关联学科/领域 Switch-692 整机/电磁兼容 独立参数 整机对浪涌(冲击)抗扰度的线-线…...
告别重复操作:M9A如何用智能自动化重塑《重返未来:1999》游戏体验
告别重复操作:M9A如何用智能自动化重塑《重返未来:1999》游戏体验 【免费下载链接】M9A 重返未来:1999 小助手 | Assistant For Reverse: 1999 项目地址: https://gitcode.com/gh_mirrors/m9/M9A 在当今快节奏的生活中,游戏…...
全面掌握AWD-Watchbird:PHP Web应用防火墙实战部署指南
全面掌握AWD-Watchbird:PHP Web应用防火墙实战部署指南 【免费下载链接】awd-watchbird A powerful PHP WAF for AWD 项目地址: https://gitcode.com/gh_mirrors/aw/awd-watchbird 在当今网络安全威胁日益复杂的背景下,Web应用防火墙(…...
ARM Cortex-M3内存映射与外设配置详解
1. ARM Cortex-M3 SMM系统架构解析在嵌入式系统开发中,系统内存映射(System Memory Map, SMM)是连接处理器内核与各类外设的关键桥梁。ARM Cortex-M3处理器通过精心设计的SMM架构,为开发者提供了灵活而高效的硬件资源配置方案。V2M-MPS2开发板作为ARM官方…...
如何用Draw.io ECE插件绘制教科书级别的电路图?
如何用Draw.io ECE插件绘制教科书级别的电路图? 【免费下载链接】Draw-io-ECE Custom-made draw.io-shapes - in the form of an importable library - for drawing circuits and conceptual drawings in draw.io. 项目地址: https://gitcode.com/gh_mirrors/dr/D…...
嵌入式信号处理实战:从MCU选型到算法优化的完整指南
1. 项目概述:为什么要在嵌入式平台上搞信号处理?如果你是一名嵌入式工程师,或者正在学习嵌入式开发,听到“信号处理”这个词,第一反应可能是“这不是DSP工程师或者算法工程师的活儿吗?”。确实,…...
跨境电商团队如何用Taotoken调用AI模型批量生成多语言商品描述
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 跨境电商团队如何用Taotoken调用AI模型批量生成多语言商品描述 对于跨境电商运营团队而言,为海量商品生成不同语言版本…...
硅基量子比特稳健控制方案解析与优化
1. 半导体自旋量子比特的稳健量子控制方案解析在硅基量子计算领域,半导体自旋量子比特因其与现有半导体工艺的兼容性和相对较长的相干时间,被视为实现大规模量子计算的有力候选者。然而,量子比特间的持续耦合(always-on couplings…...
COMET终极指南:5个实用技巧掌握神经机器翻译质量评估框架 [特殊字符]
COMET终极指南:5个实用技巧掌握神经机器翻译质量评估框架 🚀 【免费下载链接】COMET A Neural Framework for MT Evaluation 项目地址: https://gitcode.com/gh_mirrors/com/COMET COMET(A Neural Framework for MT Evaluation&#…...
基于大语言模型的智能BI工具:从自然语言到SQL与可视化的工程实践
1. 项目概述:一个开源的商业智能对话工具最近在折腾数据分析和可视化,发现一个挺有意思的开源项目,叫openchatbi。简单来说,它就是一个能让你用自然语言跟数据库“聊天”的工具。你不需要写复杂的 SQL 语句,直接问“上…...
