从顺序表中删除其值在给定值s与t之间 (包含s和t,要求s<t) 的所有元素,若s或t不合理或顺序表为空,则显示出错信息并退出运行。

本文主要是介绍从顺序表中删除其值在给定值s与t之间 (包含s和t,要求s<t) 的所有元素,若s或t不合理或顺序表为空,则显示出错信息并退出运行。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述:从顺序表中删除其值在给定值s与t之间 (包含s和t,要求s<t) 的所有元素,若s或t不合理或顺序表为空,则显示出错信息并退出运行。

// 删除顺序表 L 中闭区间 [s, t] 内的元素
bool DeleteS_T(SqList &L, int s, int t) {// 若顺序表为空或给定区间无效,则无法删除,返回 falseif (L.length == 0 || s >= t)return false;// 记录待删除的元素个数int count = 0;// 遍历顺序表for (int i = 0; i < L.length; i++) {// 若元素位于给定区间内,增加待删除计数if (L.data[i] >= s && L.data[i] <= t)count++;else// 将不在区间内的元素向前移动 count 个位置L.data[i - count] = L.data[i];}// 更新顺序表长度,即删除区间内的元素L.length -= count;// 删除操作成功,返回 truereturn true;
}

若将条件改为有序顺序表中删除在s和t之前的元素,其他不变则:

bool DeleteST(SqList &L, int s, int t) {if (L.length == 0 || s >= t)return false;int i, j;// 找到第一个大于等于s的元素的位置ifor (i = 0; i < L.length && L.data[i] < s; i++);// 找到第一个大于等于t的元素的位置jfor (j = i; j < L.length && L.data[j] <= t; j++);// 将[j, L.length)范围内的元素向前移动i-j个位置for (; j < L.length; i++, j++)L.data[i] = L.data[j];// 更新顺序表的长度L.length = i;return true;
}

这篇关于从顺序表中删除其值在给定值s与t之间 (包含s和t,要求s<t) 的所有元素,若s或t不合理或顺序表为空,则显示出错信息并退出运行。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/456662

相关文章

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

如何高效移除C++关联容器中的元素

《如何高效移除C++关联容器中的元素》关联容器和顺序容器有着很大不同,关联容器中的元素是按照关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的,本文介绍了如何高效移除C+... 目录一、简介二、移除给定位置的元素三、移除与特定键值等价的元素四、移除满足特android定条件的元

golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法

《golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法》:本文主要介绍golang获取当前时间、时间戳和时间字符串及它们之间的相互转换,本文通过实例代码给大家介绍的非常详细,感兴趣... 目录1、获取当前时间2、获取当前时间戳3、获取当前时间的字符串格式4、它们之间的相互转化上篇文章给大家介

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

Python实现将MySQL中所有表的数据都导出为CSV文件并压缩

《Python实现将MySQL中所有表的数据都导出为CSV文件并压缩》这篇文章主要为大家详细介绍了如何使用Python将MySQL数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到... python将mysql数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到另一个