从顺序表中删除其值在给定值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

相关文章

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

python 线程池顺序执行的方法实现

《python线程池顺序执行的方法实现》在Python中,线程池默认是并发执行任务的,但若需要实现任务的顺序执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录方案一:强制单线程(伪顺序执行)方案二:按提交顺序获取结果方案三:任务间依赖控制方案四:队列顺序消

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

mybatisplus的逻辑删除过程

《mybatisplus的逻辑删除过程》:本文主要介绍mybatisplus的逻辑删除过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录myBATisplus的逻辑删除1、在配置文件中添加逻辑删除的字段2、在实体类上加上@TableLogic3、业务层正常删除即

MybatisPlus中removeById删除数据库未变解决方案

《MybatisPlus中removeById删除数据库未变解决方案》MyBatisPlus中,removeById需实体类标注@TableId注解以识别数据库主键,若字段名不一致,应通过value属... 目录MyBATisPlus中removeBypythonId删除数据库未变removeById(Se

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

把Python列表中的元素移动到开头的三种方法

《把Python列表中的元素移动到开头的三种方法》在Python编程中,我们经常需要对列表(list)进行操作,有时,我们希望将列表中的某个元素移动到最前面,使其成为第一项,本文给大家介绍了把Pyth... 目录一、查找删除插入法1. 找到元素的索引2. 移除元素3. 插入到列表开头二、使用列表切片(Lis

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录