【数据结构】【线性表】王道课后习题【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 { . 阅读详情

相关推荐

如何利用URDF文件表示并联结构(仅适用于支持SDF格式的仿真环境)

介绍了一种使用URDF文件在Gazebo中表示并联结构的方法,该方法使用了URDF的SDF拓展。在一个具有并联结构的双足机器人上应用并演示了此方法的有效性。

RobotFreak的博客 3848

王道数据结构第五章

//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

MiniMax H3本地部署与ComfyUI集成实战:从环境配置到提示词优化

文本到视频生成是AI内容创作领域的关键技术,它基于扩散模型等深度学习原理,将自然语言描述转化为连贯的动态视觉序列。这项技术的核心价值在于大幅降低了视频制作的门槛,为短视频创作、概念可视化、教育内容生成等场景提供了高效工具。在实际工程实践中,成功部署和运行此类模型,如近期备受关注的MiniMax H3,需要精准处理环境配置、显存优化和提示词工程等环节。其中,解决“CUDA error: no kernel image is available”等版本兼容性问题,以及针对“8G显存”等有限资源进行参数调优,是确

weixin_33674976的博客 478

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

红外图像和可见光图像异源图像配准问题研究

本文旨在研究一种具有高准确率和鲁棒性的融合图像障碍物检测技术,通过把红外和可见光图像进行图像配准和融合,获取高质量的异源融合图像,根据融合图像的特点采用有效的障碍物检测算法,将图像中的障碍物准确检出。......

G_redsky的博客 1万+

从零构建Carsim线控转向仿真:模型搭建、算法集成与整车联动实战

本文详细介绍了从零开始基于Carsim和Simulink搭建线控转向仿真模型的完整实战流程。内容涵盖RWA前轮执行器动力学建模与PID控制、卡尔曼滤波器估算齿条力、HWA方向盘手感模拟算法设计,以及最终实现HWA与RWA闭环联动并进行整车仿真调试。通过分步拆解,帮助读者深入理解线控转向系统的核心原理与工程实现。

weixin_29158413的博客 251

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

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

雁过留痕的博客 5433

基于深度强化学习的无地图移动机器人导航:让机器人在未知环境中智能前行

虽然仍然面临sim-to-real差距、安全性保证等挑战,但随着算法的不断改进和计算能力的提升,基于DRL的无地图导航技术将在服务机器人、工业自动化、太空探索等领域发挥越来越重要的作用,为人类生产和生活带来更大便利和价值。对于复杂环境下的动态目标导航问题,研究人员提出了多智能体协同控制算法(如Teamwork-Net算法),通过多个智能体分别控制机器人的运动速度与运动方向,协同实现更高效、更稳定的导航性能。深度强化学习结合了深度学习的感知能力和强化学习的决策能力,非常适合解决无地图导航问题。

weixin_45131592的博客 902

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

制造业批次管理中双计量单位动态转换的实践指南

本文详细介绍了制造业批次管理中双计量单位动态转换的实践指南,特别是在SAP系统中的配置与操作步骤。通过实际案例展示了如何解决采购与生产部门计量单位不一致的问题,提升物料管理效率。重点讲解了批次特性配置、移动类型调整及常见问题排查方法,适用于金属加工、化工等多个行业。

weixin_29228203的博客 159

RK3568平台开发系列讲解:内核启动流程

第 493 行的 ENTRY 指明了了 Linux 内核入口,入口为stext,stext 定义在文件arch/arm/kernel/head.S 中 , 因此要分析Linux 内核的启动流程,就得先从文件arch/arm/kernel/head.S 的 stext 处开始分析。_mmap_switched 定义在文件 arch/arm/kernel/head-common.S,__mmap_switched 最终会调用 start_kernel 函数。⑥、r2=atags 或者设备树(dtb)首地址。

内核笔记 217

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

24王道考研复习书的题

qq_51536841的博客 926

ADS基础教程19 - 电磁仿真(EM)基本概念和实操

一、引言二、基本概念1.EM介绍2.Momentum介绍3.FEM介绍4.Substrate介绍三、创建Layout并进行Momentum仿真1.创建Layout2.添加Microtrip(微带线)3.添加Substrate4.Momentum仿真四、总结EM全称Electromagnetic,即electro(电)magnetic(磁)。ADS为设计和评估现代通信系统产品提供了电磁仿真工具(EM)。EM包括Momentumsimulator(动量仿真器)和FEM。

XZ_ZC的博客 1万+

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

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

Eumenides_Suki的博客 2323

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

太长不看

weixin_46524058的博客 569

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

数据结构之顺序表的实现

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

qq_28576837的博客 768

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

题目:从顺序表中删除给定区间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的博客 177

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操作。最后提供性能优化与高频报错解决方案,助力读者快速上手,真正实现“写二十行代码,跑三秒出结果”。

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

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

很多团队上完工单系统半年,会发现一个尴尬的事实:单子照常在走,报表却始终出不来。导出的 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、付费专栏及课程。

余额充值