数据结构与算法编程题3

news2024/11/26 3:28:08

长度为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.coloradmin.cn/o/1229446.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【日常总结】java JSON 转 实体类 (含多层嵌套)

一、场景 二、问题 三、解决方案 四、实战 1. 引入maven依赖 2. IEDA 安装lombok 插件 3. 安装 GsonFormPlu 插件 4. 使用 Stage 1&#xff1a;新建类&#xff0c;右键 选择 Generate Stage 2&#xff1a;选择 GsonFormatPlus Stage 3&#xff1a;将json复制其中&…

2023年亚太杯数学建模亚太赛ABC题思路资料汇总贴

下文包含&#xff1a;2023年亚太杯数学建模亚太赛A- C题思路解析、选题建议、代码可视化及如何准备数学建模竞赛&#xff08;23号发&#xff09; C君将会第一时间发布选题建议、所有题目的思路解析、相关代码、参考文献、参考论文等多项资料&#xff0c;帮助大家取得好成绩。2…

如何搞定电子画册制作,分分钟在线制作与宣传!

一提到公司宣传&#xff0c;大多数人会想到的是制作视频或纸质的小册子。随着互联网技术的发展&#xff0c;如今可以用电子画册来做宣传&#xff0c;不仅可以跨空间地域传播&#xff0c;并且仅需图文排版设计好&#xff0c;通过在线电子画册制作工具转换就能简单实现宣传&#…

论文阅读:“iOrthoPredictor: Model-guided Deep Prediction of Teeth Alignment“

文章目录 IntroductionMethodologyProblem FormulationConditional Geometry GenerationTSynNetAligned Teeth Silhouette Maps Generation ResultsReferences Github 项目地址&#xff1a;https://github.com/Lingchen-chen/iOrthopredictor Introduction 这篇文章提出了一种…

基于单片机双路压力监测报警系统

**单片机设计介绍&#xff0c; 【毕设课设】基于单片机双路压力监测报警系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机双路压力监测报警系统是一个复杂的系统&#xff0c;它涉及到单片机、压力传感器、报警器等多…

Midjourney绘画提示词Prompt参考学习教程

一、工具 SparkAi&#xff1a; SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软…

Threejs_03 全屏+响应式画布实现

咋控制全屏呢&#xff1f; 1.做一个用来点击的按钮 var btn document.createElement("button"); btn.innerHTML "点击全屏"; btn.style.position "absolute"; btn.style.top "10px"; btn.style.left "10px"; btn.sty…

【注册Huggingface】获取token

Hugging Face是一家美国公司&#xff0c;专门开发用于构建机器学习应用的工具。该公司的代表产品是其为自然语言处理应用构建的transformers库&#xff0c;以及允许用户共享机器学习模型和数据集的平台。 Huggingface 是一个开源的cv、nlp框架&#xff0c;提供了超过100,000个…

代码随想录算法训练营第五十九天丨 单调栈02

503.下一个更大元素II 思路 做本题之前建议先做739. 每日温度 (opens new window)和 496.下一个更大元素 I (opens new window)。 这道题和739. 每日温度 (opens new window)也几乎如出一辙。 不过&#xff0c;本题要循环数组了。 关于单调栈的讲解我在题解739. 每日温度 …

NextJS开发:ssr服务器端渲染页面,添加加载进度提示

nextjs中ssr服务器端渲染的页面加载速度慢的时候&#xff0c;需要显示一个如下图的加载进度提示&#xff0c;来优化用户体验。 nextjs框架中已经预留了加载动画的接口页面&#xff0c;我们只需要提那家加载动画tsx&#xff0c;处理页面逻辑就可以实现。 page.tsx 同级目录创建…

金融市场数据至上:QuestDB 为您的数据提供最优解 | 开源日报 No.81

vlang/v Stars: 34.7k License: MIT V 是一个开源项目&#xff0c;它是一种简单、易于学习的编程语言。该项目具有以下核心优势和主要功能&#xff1a; 简洁性&#xff1a;可以在周末内掌握这门语言。快速编译&#xff1a;使用 Clang 后端约为 110k loc/s&#xff0c;本地和…

X12学习手册

EDI术语中的X12是指ANSI X12 报文标准&#xff08;EDI Document Standard&#xff09;&#xff0c;于 1979 年发布&#xff0c;由认证标准委员会维护&#xff0c;在过去的几十年中得到扩展&#xff0c;以满足全球业务流程的要求&#xff0c;包括汽车、物流、零售、医药、金融、…

回顾以前的java

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

ModernCSS.dev - 来自微软前端工程师的 CSS 高级教程,讲解如何用新的 CSS 语法来解决旧的问题

今天给大家安利一套现代 CSS 的教程&#xff0c;以前写网页的问题&#xff0c;现在都可以用新的写法来解决了。 ModernCSS.dev 是一个现代 CSS 语法的教程&#xff0c;讲解新的 CSS 语法如何解决一些传统问题&#xff0c;一共有30多课。 这套教程的作者是 Stephanie Eckles&am…

uniapp的/绝对定位/相对定位/固定定位/粘滞定位

【[html5]你还分不清楚绝对定位和相对定位......】 相对定位一般配合绝对定位使用 <template><view class"content"><view style"background-color: black;width: 100%;height: 300px;position:relative;"><view class"one"…

c++多态之辨析:静态联编和动态联编

C的几种多态形式 从广义上来说&#xff0c;多态性是指一段程序能够处理多种类型对象的能力。在C中&#xff0c;这种多态性可以通过重载多态&#xff08;函数和运算符重载&#xff09;、强制多态&#xff08;类型强制转换&#xff09;、类型参数化多态&#xff08;模板&#xff…

【Linux】命令lsof使用详解

&#x1f984; 个人主页——&#x1f390;开着拖拉机回家_大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f…

想要成为CSS大师?这些技巧是你必须知道的!

前言 CSS 是网页设计中不可或缺的一部分&#xff0c;掌握一些实用的 CSS 技巧&#xff0c;可以让你在设计中展现出更多的创意和个性。本文将介绍一些 CSS 技巧&#xff0c;帮助你提升自己的技能&#xff0c;成为一个真正的 CSS 大师。 1. 改变 input 自动填充的背景颜色 这段 …

【Linux】缓冲区+磁盘+动静态库

一、缓冲区 1、缓冲区的概念 缓冲区的本质就是一段用作缓存的内存。 2、缓冲区的意义 节省进程进行数据IO的时间。进程使用fwrite等函数把数据拷贝到缓冲区或者外设中。 3、缓冲区刷新策略 3.1、立即刷新&#xff08;无缓冲&#xff09;——ffush() 情况很少&#xff0c…

MacOS - Cpolar 在 Mac 上如何使用?

1、下载并配置环境变量 brew tap probezy/core && brew install cpolar 2、 Token 认证 cpolar authtoken xxx 3、安装服务 sudo cpolar service install 4、启动服务 sudo cpolar service start 5、创建隧道 访问地址&#xff1a;http://127.0.0.1:9200&…