数据结构与算法编程题3

长度为n的顺序表,删除线性表所有值为x的元素,使得时间复杂度为O(n),空间复杂度为O(1)

#include <iostream>
using namespace std;

typedef int ElemType;
#define Maxsize 100
#define	OK 1
#define  ERROR 0
typedef struct SqList
{
	ElemType data[Maxsize];
	int length;
}SqList;

void Init_SqList(SqList& L)
{
	L.length = 0;
}

void Delete_x1(SqList& L, int x)
{
	int k = 0;
	for (int i = 0; i < L.length; i++)
	{
		if (L.data[i] != x)
			L.data[k++] = L.data[i];
	}
	L.length = k;
}


void Delete_x2(SqList& L, int x)
{
	int count = 0;
	for (int i = 0; i < L.length; i++)
	{
		if (L.data[i] == x)
			count++;
		else
			L.data[i - count] = L.data[i];
	}
	L.length = L.length - count;
}

//0 1 2 3 4 
//5 3 3 1 10
/*长度为n的顺序表,删除线性表所有值为x的元素,使
得时间复杂度为O(n),空间复杂度为O(1)*/
int main(void)
{
	SqList L;
	Init_SqList(L);
	cout << "--------------测试情况1--------------" << endl;
	L.data[0] = 5;
	L.data[1] = 3;
	L.data[2] = 3;
	L.data[3] = 1;
	L.data[4] = 10;
	L.length = 5;
	for (int i = 0; i < L.length; i++)
		cout << L.data[i] << "     ";
	cout << endl;
	//Delete_x1(L, 3);
	Delete_x2(L, 3);
	for (int i = 0; i < L.length; i++)
		cout << L.data[i] << "     ";
	cout << endl;
	cout << "--------------测试情况2--------------"<<endl;
	L.data[0] = 5;
	L.data[1] = 3;
	L.data[2] = 3;
	L.data[3] = 1;
	L.data[4] = 10;
	L.data[5] = 11;
	L.length = 6;
	for (int i = 0; i < L.length; i++)
		cout << L.data[i] << "     ";
	cout << endl;
	//Delete_x1(L, 3);
	Delete_x2(L, 3);
	for (int i = 0; i < L.length; i++)
		cout << L.data[i] << "     ";
	cout << endl;
	return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/167259.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

回顾以前的java

System.out.println(card1);打印的是对象的话会自动调用我们重写的toString方法 这个方法通常在Object类中定义&#xff0c;所有的Java类都继承自Object类 实例方法有个this,谁调用这个方法谁就是this 1.练习重写实例方法,调用this 调用object的equals,实际是判断地址相不相等…

【精选】JSP技术知识点大合集

JSP简介 JSP介绍 JSP(全称Java Server Pages)Java服务端页面技术&#xff0c;是JavaEE平台下的技术规范。它允许使用特定的标签在HTML网页中插入Java代码&#xff0c;实现动态页面处理&#xff0c;所以JSP就是HTML与Java代码的复合体。JSP技术可以快速的实现一个页面的开发&am…

数据结构与算法编程题4

删除线性表中值在s与t之间的元素&#xff08;s<t&#xff09;&#xff0c;s和t不合理或者顺序表为空则显示出错信息并退出运行。 #include <iostream> using namespace std;typedef int ElemType; #define Maxsize 100 #define OK 1 #define ERROR 0 typedef struct…

2023年中国稀土精密加工分类、市场规模及发展趋势分析[图]

稀土精密加工行业是指通过精密加工技术对稀土材料进行加工、制造和加工成品的一种行业。稀土精密加工行业主要包括稀土材料的提取、分离、纯化、加工和制造等环节&#xff0c;其中加工和制造是该行业的核心环节。稀土材料是指具有特殊物理、化学和磁性等性质的一类元素&#xf…

2023年中国吞咽神经和肌肉电刺激仪市场发展趋势分析:产品需求持续增长[图]

吞咽神经和肌肉电刺激仪是通过输出特定的低频脉冲电流对吞咽及构音功能相关的神经和肌肉进行电刺激&#xff0c;改善吞咽、构音肌群的收缩运动功能&#xff0c;缓解神经元麻痹&#xff0c;促进吞咽反射弧的重建与恢复&#xff0c;进而提高患者的吞咽及语言能力。 吞咽神经和肌…

RocketMQ运维工具

生产环境的RocketMQ集群&#xff0c;需要持续运行并且要有较高的稳定性&#xff0c;运维是件重要但有时候很繁琐的事&#xff0c;本节介绍运维工具的相关内容。 1.开源版本运维工具功能介绍 第1章介绍过如何启动运维页面&#xff0c;运维页面打开后&#xff0c;从左至右有7个…

查询药物的药效和机制

PubChem (nih.gov) XL765: Uses, Interactions, Mechanism of Action | DrugBank Online 基础信息查询 如&#xff1a;Paclitaxel紫杉醇的查询 Pharmacodynamics Paclitaxel is a taxoid antineoplastic agent indicated as first-line and subsequent therapy for the trea…

2023年中国全自动烘干机产业链、产能及发展趋势分析[图]

全自动烘干机设备是工业化生产制造过程中不可缺少的一种机械设备设备&#xff0c;它广泛应用于工业化工原料加工中药材烘干、农副产品加工等&#xff0c;因此制造了多种干燥设备&#xff0c;目前有多层网带干燥机、热泵干燥机、微波干燥机和冷冻干燥机四种自动干燥机&#xff0…

2023年中国地产SaaS分类、产业链及市场规模分析[图]

SaaS是一种基于云计算技术&#xff0c;通过订阅的方式向互联网向客户提供访问权限以获取计算资源的一项软件即服务。地产SaaS则是SaaS的具体应用&#xff0c;提供了一个线上平台&#xff0c;用于协助房地产供应商与购房者、建筑承建商、材料供应商及房地产资产管理公司之间的协…

小红书为什么没人看,小红书爆款标题怎么写?

作为快节奏的社会&#xff0c;人们追求的是不仅仅是高价值更是高性价比&#xff0c;和吸引度。而标题类似于门面&#xff0c;吸引程度自然作为重中之重。今天我们和大家分享下小红书为什么没人看&#xff0c;小红书爆款标题怎么写&#xff1f; 以母婴类型为例子&#xff0c;母婴…

MR素数测试及 pycryptodome库下 已知MR伪素数以及强伪证 生成指定伪随机数生成器绕过素性检测

MR素数测试在密码学库中应用广泛&#xff0c;通常作为BSPW的一部分来进行素数测试&#xff0c;由于在其算法中&#xff0c;有随机数的使用&#xff08;选择一个随机的base&#xff09;&#xff0c;若一个MR伪素数 n n n&#xff0c;已知其在某一个强伪证 a a a&#xff08;随机…

数据仓库高级面试题

数仓高内聚低耦合是怎么做的 定义 高内聚&#xff1a;强调模块内部的相对独立性&#xff0c;要求模块内部的元素尽可能的完成一个功能&#xff0c;不混杂其他功能&#xff0c;从而使模块保持简洁&#xff0c;易于理解和管理。 低耦合&#xff1a;模块之间的耦合度要尽可能的…

Linux编辑器-gcc/g++使用

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟练使用gcc/g编译器 > 毒鸡汤&#xff1a;真正…

【Dynamic-datasource】Springboot多数据源整合

引入依赖&#xff1a; <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.5.0</version> </dependency> 整体pom文件&#xff1a; <?xml versi…

ruoyi-vue前后端分离版本验证码实现思路

序 时隔三个月&#xff0c;再次拿起我的键盘。 前言 ruoyi-vue是若依前后端分离版本的快速开发框架&#xff0c;适合用于项目开始搭建后台管理系统。本篇文章主要介绍其验证码实现的思路。 一、实现思路简介 1、后端会生成一个表达式&#xff0c;比如1 2 ? 3&#xff0…

Cannot find proj.db

原因 编译GDAL完成后&#xff0c;我打了个包(包括.so)移动到了另外同环境的机器上。 应用gdal ogr2ogr时候提示找不到proj.db 解决办法&#xff1a; 把proj的share拷贝到另外环境上。 #gdal新建othershare&#xff0c;proj的share复制过去 mkdir -p /usr/local/gdal-3.6.2…

bhosts 显示节点 “unreach“ 状态

4.1、bhosts简单使用 查看各节点情况&#xff0c;包括状态和正在运行的 Job 情况等 STATUS列展示节点状态 OK&#xff1a;可用——可接受新的作业的正常状态 unavail&#xff1a;不可用 可能原因&#xff1a;主机关闭&#xff0c;LIM和sbatchd不可达 unreach&#xff1a;无法连…

大学生如何免费认证,下载,安装MATLAB

下载 打开学校图书馆官网 选择版本后&#xff0c;点击下载 注册绑定个人认证 前提&#xff01;需要有学校邮箱【以edu.cn结尾的】 进入mathworks官网 注册账户 安装 下载完后&#xff0c;打开 选择&#xff1a;setup 安装程序 勾选&#xff1a;是&#xff1b;选择&#xf…

【Linux进阶之路】动静态库

文章目录 回顾一. 静态库1.代码传递的方式2.简易制作3.原理 二. 动态库1.简易制作2.基本原理 尾序 回顾 前面在gcc与g的使用中&#xff0c;我们简单的介绍了动态库与静态库的各自的优点与区别&#xff1a; 动态链接库&#xff0c;也就是所有的程序公用一份代码,虽然方便省空间&…

Node.js黑马时钟案例(本人详细介绍实现过程)

先上没有使用node.js之前的html部分代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title></title><style>* {margin: 0;padding: 0;}html,body {height: 100%;overflow: hidden;backgrou…
最新文章