【数据结构】【线性表】王道课后习题【05.删除无序顺序表中指定范围的元素】(可直接运行)

王道数据结构第五章属于二叉树课后习题错题总结 个人用来错题回顾与总结 阅读详情

1.题目描述

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

2.算法实现

由于此顺序表未说明为有序表,则应该选择找到所有小于s大于t的值,并将其移动到表前面,再修改长度即可。

// 算法实现
// 此题思想与第三题类似
bool deleteDuringSToT(SeqList &L, int s, int t) {
    // 判空与判断s与t是否合理
    if(Empty(L) && s < t) {
        return false;
    }
    // 由于此顺序表未说明为有序表,则应该选择找到所有小于s大于t的值,并将其移动到表前面
    // 再修改长度即可
    // 定义变量,记录位于s、t之间的元素个数
    int k = 0;
    for(int i = 0;i < L.length;i++) {
        if(L.data[i] >= s && L.data[i] <= t) {
            k++;
        } else {
            // 如果不是s到k之间的值,则前移k位
            // 前移k位主要是因为k的值即是位于s、t之间的元素个数
            // 前移k位即能保证移到上一个非位于s、t之间的元素的后一个
            L.data[i - k] = L.data[i];
        }
    }
    L.length = L.length - k;
    return true;
}

3.完整代码

#include<stdio.h>
#include<stdlib.h>

#define InitSize 10

typedef struct {
    int *data;  // 数据
    int MaxSize;    // 最大容量
    int length; // 目前长度
} SeqList;

// 初始化
void InitList(SeqList &L) {
    // 为了方便,这里选择初始化时填入1-10
    // 申请10个整型的空间
    L.data = (int *)malloc(InitSize * sizeof(int));
    // 数据填入
    for(int i = 0;i < InitSize;i++) {
        L.data[i] = i + 1;
    }
    L.length = 10;
    L.MaxSize = InitSize;
}

// 判空操作
bool Empty(SeqList L) {
    // 直接根据长度判断即可
    if(L.length == 0) {
        return true;
    }
    return false;
}

// 顺序表的输出操作
bool PrintList(SeqList L) {
    // 若表为空,则不能输出
    if(Empty(L)) {
        return false;
    }
    // 循环遍历输出
    for(int i = 0;i < L.length;i++) {
        printf("data[%d]=%d\n", i, L.data[i]);
    }
    return true;
}

// 算法实现
// 此题思想与第三题类似
bool deleteDuringSToT(SeqList &L, int s, int t) {
    // 判空与判断s与t是否合理
    if(Empty(L) && s < t) {
        return false;
    }
    // 由于此顺序表未说明为有序表,则应该选择找到所有小于s大于t的值,并将其移动到表前面
    // 再修改长度即可
    // 定义变量,记录位于s、t之间的元素个数
    int k = 0;
    for(int i = 0;i < L.length;i++) {
        if(L.data[i] >= s && L.data[i] <= t) {
            k++;
        } else {
            // 如果不是s到k之间的值,则前移k位
            // 前移k位主要是因为k的值即是位于s、t之间的元素个数
            // 前移k位即能保证移到上一个非位于s、t之间的元素的后一个
            L.data[i - k] = L.data[i];
        }
    }
    L.length = L.length - k;
    return true;
}

int main() {
    SeqList L;
    InitList(L);
    PrintList(L);
    printf("------------------------\n");
    deleteDuringSToT(L, 3, 7);
    PrintList(L);
    return 0;
}

4.运行结果

在这里插入图片描述

【2023王道数据结构】【线性表】【P18】【05】C、C++完整实现(可直接运行) ~~~笔锋至此又怎能平淡而终,故事开始便不承认普通✌✌✌ 如果需要完整代码可以关注下方公众号,后台回复“代码”即可获取,阿光期待着您的光临~ 题目: 解题思路: >定义一个k变量,用它来记录不在区间内元素的个数 >在遍历期间如果遇到不在区间内的元素 >将其赋值到k位置 代码实现: #include <iostream> using namespace std; #define Maxsize 50 // 定义顺序表结构 typedef struct { . 阅读详情

相关推荐

Streamlit安装避坑指南:从零到一键启动你的第一个数据可视化应用

本文提供了一份详尽的Streamlit安装避坑指南,帮助用户从零开始快速启动第一个数据可视化应用。文章深入剖析了安装过程中常见的网络超时、依赖冲突、环境变量缺失等核心问题,并给出了使用虚拟环境、配置国内镜像源、利用.whl文件离线安装等多种经过验证的解决方案,确保安装过程顺畅无阻。

weixin_29065015的博客 614

王道数据结构第五章

//5 typedef struct node{ elemtype data; struct node *fch,*nsib; }*tree; int leaves(tree t) { if(t==NULL) return 0; if(t->fch==NULL) return 1+leaves(t->nsib); else return leaves(t->tch)...

qq_42712462的博客 483

STM32G070xx将Flash页分块方式存储,固定数据块存储,实现一次擦除多次写入

本例程使用STM32G070xx芯片,Flash大小128KB,Flash每页(2048字节)写满后再擦除。操作存储区分为64块,每块32字节,即写满64次擦除一次;标定存储区分为16块,每块128字节,即写满16次擦除一次,每个存储区的块都有各自的头部标记

RaphaelCeo的博客 1545

2021-08-25王道 数据结构 第5章 树与二叉树 p141 第5题

第5章 树与二叉树 5.3 二叉树的遍历和线索二叉树 综合应用题 第5题 #include <stdio.h> #include <stdlib.h> //malloc所在头文件 #include <iostream> #define MaxSize 100 using namespace std; typedef int ElemType; typedef struct BiTNode{//声明树 ElemTyp

qq_44801423的博客 193

Warning-[INFL_DELTA] Too many events zero delay loop

项目场景: 运用VCS工具执行仿真的时候,遇到如下错误提示,但仿真还在继续。 Warning-[INFL_DELTA] Too many events Possible zero delay loop. Too many events in the simulation at time 0 fs. 问题描述: 为什么会有这个问题; 什么导致了这个问题; 原因分析: 1、为什么会有这个问题 由于竞争条件或编码风格不明确,可能会产生零延时回路,导致仿真挂起或仿真时间无限。 2、什么导致了这个问题 举

hh199203的博客 1万+

TNS-12516及ORA-12516错误解决

在客户端进行sqlplus连接报错如下: ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程序 在/home/oracle/product/10.2.0/db_1/network/log/listener.log中查看到错误如下: TNS-12516: TNS:listener could not find available handler with matchin

KEL 2万+

广工 AnyviewC 数据结构习题 第五章

广工 AnyviewC 数据结构习题 第五章广工 AnyviewC 数据结构习题 第五章1【题目】试编写如下定义的递归函数的递归算法:2【题目】试写出求递归函数F(n)的递归算法:3【题目】求解平方根 的迭代函数定义如下:5【题目】试写出求递归函数F(n)的非递归算法:6【题目】求解平方根 的迭代函数定义如下:7【题目】假设以二维数组g[1..m][1..n]表示一个图像8【题目】试按依次对每个元...

雁过留痕的博客 5433

CloudCompare横截面工具实战:从点云切片到轮廓提取的完整流程

本文详细介绍了CloudCompare软件中Cross Section工具的核心功能与实战流程。从交互式裁剪框的精准操控,到包络线提取的参数设置与优化,再到内部轮廓提取及批量处理技巧,完整解析了如何从三维点云中高效提取建筑立面、隧道断面等关键轮廓信息,是点云数据处理与分析的实用指南。

weixin_29290963的博客 284

2022版王道数据结构算法题C语言代码实现-第5章-树与二叉树

概述 这是2022版王道数据结构的第5章——树与二叉树的算法大题的C语言代码实现,主要分为二叉树,树和树与二叉树的应用三部分。代码基本都经过了简单的测试,基本上不会有太大问题。 编译环境为gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0,文件目录结构如下: ch5 ├── 5-3-binaryTree.c ├── 5-4-tree.c ├── 5-5-application.c ├── application_test.c ├── binaryTree_test.c ├── q

DanielSYC的博客 1078

Q3D提取PCB走线RLCG参数

介绍一种提取PCB走线寄生电容和寄生电感的方法

sinat_15150363的博客 2917

AUTOSAR进阶图解==>AUTOSAR_EXP_VFB

AUTOSAR虚拟功能总线(VFB)摘要 AUTOSAR虚拟功能总线(VFB)是汽车开放系统架构中的核心抽象概念,为分布式电子系统提供统一通信模型。VFB允许软件组件在不了解底层物理通信机制的情况下交互,通过运行时环境(RTE)实现组件间的数据交换。系统配置过程将抽象的VFB视图转换为具体实现,包括组件到ECU的映射和通信机制选择。VFB采用"last-is-best"语义进行数据通信,并支持模式管理机制,使组件能根据系统状态调整行为。此外,VFB还支持与非AUTOSAR系统的交互,通常

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 1117

2024年王道考研数据结构线性表—顺序表题目

24王道考研复习书的题

qq_51536841的博客 926

【AI Agent 记忆共享实战】【下篇】多 Agent 会话 Session 统一共享实战:全链路工程落地、采集归一、MCP 服务、私有化部署、源码级实战

中篇我们已经锁定最终最优架构方案: 非侵入式、外部旁路采集、只读归一、中心化存储、MCP 按需检索注入。摒弃「改 Agent 源码」「软链接互通」「原生 Session 互导」等不现实方案。本篇直接落地可上线、可简历复用、可个人私有化部署多 Agent 异构 Session专属采集器(Claude/CODex/DSH/OpenCode/Kimi/WorkBuddy/ 豆包)统一消息归一化解析层(解决所有 Schema 异构)增量同步、去重、时间戳对齐核心逻辑。

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 481

2.2 线性表的顺序表示-综合应用题(基础题1-9)

线性表的顺序表示-综合应用题基础题解析与代码。

Eumenides_Suki的博客 2323

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

王道考研408 数据结构 2.2线性表的表示练习题

太长不看

weixin_46524058的博客 569

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

数据结构之顺序表的实现

把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。删除表L中第i个位置的元素,并用e返回删除元素的值。平均时间复杂度 = O(n)3. 拓展容量不方便(即使使用动态分配的方式实现,拓展长度的时间复杂度也比较高,因为需要把数据复制到新的区域)。在表L中查找具有给定关键字值的元素 平均时间复杂度 =O(n)按位查找的应用之一就是作为哈希表,通过key计算出哈希值,然后直接就能获取哈希值所在处的元素了,效率很高。获取表L中第i个位置的元素的值 平均时间复杂度O(1)

qq_28576837的博客 768

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

删除顺序表中指定范围的元素

题目:从顺序表中删除给定区间s~t之间的值,若给定区间不合理或顺序表为空,则显示错误信息并退出 分析:此题与上一题大同小异,只不过,循环体内部的判定条件有了变化,我们仍然可以采用上一题的思路进行编写;即使用k对符合 条件的元素进行计数,一边遍历表L一边统计k,当某一元素不满足条件时,就往前挪到i-k位置上。 代码如下: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> void deletePoint(int *arr,...

北街lhy的博客 2968

小白算法积累——顺序表5#无序顺序表+删除范围

题目:从顺序表中删除其值在给定值s与t之间(包含s和t,要求s<t)的所有元素,如果s或t不合理或顺序表为空,则显示出错信息并退出运行。 关键词:无序顺序表 删除范围 思路: 1.遍历扫描顺序表L,用k记录下当前位置下,所有值在s和t之间的元素 的个数 需要变量:当前被删元素个数k; 遍历小助手i; 2.对于当前扫描的元素进行判断: a.其值不在被删范围内:前移k个单位 b.其值在被删范...

aprilzj123的博客 417

王道数据结构课后题 5.4.4-12

王道数据结构5.4.4-12

wxz0v0的博客 425

2_2删除无序顺序表的符合条件的元素

题目: 从顺序表中删除其值在给定值s与t之间(包含s和t,要求s<t) 的所有元素 若s或t不合理,或顺序表为空,则显示出错误信息并退出运行 #include<stdio.h> typedef int ElemType; //假设表的元素类型为ElemType typedef struct { ElemType data[50]; int length; }SqList; //自己代码 bool del_s_to_t(SqList &l,ElemType s,E

qq_43189330的博客 294

【数据结构】基于比较的排序算法 - 交换排序

本文介绍交换排序中的冒泡排序与快速排序。冒泡排序通过相邻元素比较交换,实现升序,时间复杂度最坏为O(N²),空间复杂度O(1),稳定且适合小规模有序数据。快速排序采用分治思想,以基准值划分区间,平均时间复杂度O(N log N),空间复杂度O(log N),但不稳定,实际应用中性能优异,可通过随机基准、小区间优化等提升效率。

careathers的博客 340

【数据结构-5】单链表的实现

单链表,具体来说是单向的、不带头的、不循环的链表。链表由一个一个节点组成,每个节点分为数据域和指针域,数据域存放数据,指针域存放下一节点的地址。这样,就可以根据指针域中的地址找到下一个节点,节点就串起来了构成了单链表。

weixin_44218929的博客 185

C# 数据结构和特殊类型

.NET Core(现称.NET)提供丰富数据结构,优化性能与开发效率。日常开发首选List<T>和Dictionary<TKey,TValue>;高性能场景推荐Span<T>与Memory<T>减少内存分配;并发环境使用ConcurrentDictionary等线程安全集合;避免非泛型集合如ArrayList。

cccloveforever的博客 673

pandas 深度入门:从数据结构到一份真实销售报表

本文系统讲解Pandas核心应用,从三分钟安装到完整月度报表生成,涵盖数据读取、清洗、筛选、分组聚合、表连接、透视表与时间序列等13个关键环节。强调“先看数据再动手”,掌握Series/DataFrame/Index结构本质,熟练运用loc/iloc、merge校验、agg/transform区别,通过真实案例实现高效报表自动化,告别手动Excel操作。最后提供性能优化与高频报错解决方案,助力读者快速上手,真正实现“写二十行代码,跑三秒出结果”。

信息安全领域优质创作者|操作系统领域专家 276

工单系统的数据结构化:故障分类体系设计与报表可用性

很多团队上完工单系统半年,会发现一个尴尬的事实:单子照常在走,报表却始终出不来。导出的 Excel 几千行,看不出趋势、算不出口径、答不了"哪类故障占大头"。问题几乎都不在系统,而在数据模型的第一层——。这篇文章把这件事拆开讲:自由文本为什么会失效、分类体系怎么分层、表怎么建、老数据怎么迁、上线前怎么验收。

ITyunwei0987的博客 283

数据结构的基本概念和算法的初步认识

本文系统阐述数据结构与算法的基础概念,涵盖数据、数据元素、数据对象的层次关系,数据结构的三要素(逻辑结构、存储结构、数据运算),以及抽象数据类型。重点解析算法的特性与设计要求,并深入讲解时间复杂度分析的核心——大O表示法,通过“只保留最高阶项、忽略常数系数、取最坏情况”三大原则,结合实例剖析O(1)、O(n)等常见时间复杂度,揭示算法效率的本质评估方法。

ACH_YYX的博客 174
上一篇: 【数据结构】【线性表】王道课后习题【04.删除有序顺序表中指定范围的元素】(可直接运行)
下一篇: 【数据结构】【线性表】王道课后习题【06.删除有序顺序表重复的元素】(可直接运行)
Silver  Star
Silver Star 新星创作者: 大数据技术领域 新星创作者: 大数据技术领域
博客等级 码龄7年 1万+粉丝 72原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Silver Star

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值