943: 顺序表插入操作的实现

学习版

【C语言】

需要扩充数组

【C++】

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class MyLinkedList
{
public:
	struct LinkedNode
	{
		int val;
		LinkedNode* next;
		LinkedNode(int x) :val(x), next(NULL) {}
	};
	MyLinkedList() {
		dummyHead = new LinkedNode(0);
		len = 0;
	}
	~MyLinkedList() {
		while (dummyHead) {
			LinkedNode* tmp = dummyHead;
			dummyHead = dummyHead->next;
			delete tmp;
		}
	}
	void addTail(int x) {
		LinkedNode* newNode = new LinkedNode(x);
		LinkedNode* cur = dummyHead;
		while (cur->next != NULL) {
			cur = cur->next;
		}
		cur->next = newNode;
		len++;
	}
	void insert(int item, int data)
	{
		LinkedNode* cur = dummyHead;
		LinkedNode* newNode = new LinkedNode(data);
		len++;
		while (cur->next != NULL && cur->next->val != item) {
			cur = cur->next;
		}
		if (cur->next == NULL) cur->next = newNode;
		else { 
			newNode->next = cur->next; 
			cur->next = newNode;
		}
	}
	void printLinkedList() {
		LinkedNode* cur = dummyHead;
		while (cur->next != NULL) {
			cout << cur->next->val << " ";
			cur = cur->next;
		}
	}
private:
	LinkedNode* dummyHead;
	int len;
};
int main()
{
	MyLinkedList list;
	int n, x;
	cin >> n;
	while (n--) {
		cin >> x;
		list.addTail(x);
	}
	int item, data;
	cin >> item;
	cin >> data;
	list.insert(item, data);
	list.printLinkedList();
	return 0;
}

【STL】

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
	int n, a;
	std::cin >> n;
	std::vector<int> list;
	while (n--) {
		std::cin >> a;
		list.push_back(a);
	}
	int item, data;
	std::cin >> item >> data;
	std::vector<int>::iterator it = std::find(list.begin(), list.end(), item);
	list.insert(it, data);
	for (int a : list) {
		std::cout << a << " ";
	}
	return 0;
}

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

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

相关文章

切换ip地址的app,简单易用,保护隐私

在数字化时代&#xff0c;IP地址作为网络设备的标识&#xff0c;不仅承载着数据在网络间的传输任务&#xff0c;还在一定程度上关联着用户的隐私和安全。因此&#xff0c;切换IP地址的App应运而生&#xff0c;为用户提供了一种便捷的方式来改变其网络身份&#xff0c;实现匿名浏…

制造业需要有品牌力和生命力的产品,CRM能做什么?

以往谈及制造业的数字化转型&#xff0c;生产制造环节往往是重点。但从中国制造走向中国创造&#xff0c;需要有生命力和品牌力的产品。全面推进制造业高质量发展&#xff0c;须重视客户与营销环节的变革&#xff0c;将客户与产品有效连通&#xff0c;实现价值升级。 大连冶金…

汉语语音基本特性

发音的生理基础和过程 人的发音生理机构如图 2.3.1所示,发音时由肺部收缩送出一股直流空气,经气管流至喉头声门处(声门即声带开口处),在发声之初,声门处的声带肌肉收缩,声带并拢间隙小于 1mm,这股直流空气冲过很小的缝隙,使声带得到横向和纵向的速度,此时,声带向两边运动,缝隙…

LeetCode-热题100:48. 旋转图像

题目描述 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1&#xff1a; 输入&#xff1a; matrix [[1,2,3],[4,5,6],…

1236. 递增三元组:做题笔记

目录 暴力 代码 二分 代码 前缀和 代码 推荐视频讲解 暴力 这道题说的是有三个元素数量相同的数组&#xff0c;想知道有多少个三元组满足&#xff1a;三个数分别来自 A B C数组且呈现递增。 我想的是既然要求递增&#xff0c;那就先把数组数据都排一下序&#xff0c;…

行车记录打不开?别慌,数据恢复有高招!

行车记录打不开&#xff0c;这恐怕是许多车主都曾经遭遇过的烦恼。在驾驶途中&#xff0c;行车记录仪本应是记录美好瞬间、保障行车安全的重要工具&#xff0c;但一旦它出现打不开的情况&#xff0c;所有的期待与信赖便瞬间化为乌有。面对这种情况&#xff0c;我们该如何应对&a…

HQL,SQL刷题,尚硅谷(初级)

目录 相关表数据&#xff1a; 题目及思路解析&#xff1a; 多表连接 1、课程编号为"01"且课程分数小于60&#xff0c;按分数降序排列的学生信息 2、查询所有课程成绩在70分以上 的学生的姓名、课程名称和分数&#xff0c;按分数升序排列 3、查询该学生不同课程的成绩…

python_绘图_多条折线图绘制_显示与隐藏

1. 需求 给定一个二维数组 100行, 5列, 每一列绘制一条折线, 横轴为行索引, 纵轴为对应位置的值, 绘制在一个子图里面, 使用python plot, 使用随机颜色进行区别添加显示和隐藏按钮, 可以对每条折线进行显示和隐藏 2. 代码 import numpy as np import matplotlib.pyplot as p…

软件心学格物致知篇(5)愿望清单上篇

愿望清单 前言 最近发现愿望清单是一个很有意思的词&#xff0c;结合自己的一些过往经验得到一点点启发。 我发现在众多领域都有东西想伪装成它。 比如一些企业的企业战略&#xff0c;比如客户提出的一些软件需求&#xff0c;比如一些系统的架构设计指标&#xff0c;比如一…

C语言动态内存讲解+通讯录2.0

文章目录 前文malloc和freecallocrealloc枚举常量的简单说明及使用 通讯录2.0动态开辟通讯录,满了就扩容保存数据和载入数据 通讯录2.0演示推荐好用的软件 前文 本文主要介绍动态开辟的几个函数,以及改进之前的通讯录。 我们局部变量等是在栈区上开辟空间的,而我们动态开辟的空…

Learning Discriminative Representations for Skeleton Based Action Recognition

标题&#xff1a;基于骨架的动作识别的学习判别性表示 原文链接&#xff1a;Learning Discriminative Representations for Skeleton Based Action Recognition (thecvf.com) 源码链接&#xff1a;https://github.com/zhysora/FR-Head 发表&#xff1a;CVPR 摘要 最近&…

【论文复现|智能算法改进】动态透镜成像学习人工兔优化算法及应用

目录 1.算法原理2.改进点3.结果展示4.参考文献 1.算法原理 【智能算法】人工兔优化算法&#xff08;ARO&#xff09;原理及实现 2.改进点 非线性递减能量因子&#xff1a; A ( t ) ( A max ⁡ − A min ⁡ ) ( 1 − sin ⁡ ( ( t T ) n π 2 ) (1) \begin{aligned}A\left…

李宏毅深度强化学习导论——当奖励是稀疏的

引言 这是李宏毅强化学习的笔记&#xff0c;主要介绍如何处理稀疏奖励问题。 稀疏奖励 当我们拿Actor和环境互动后可以得到很多奖励&#xff0c;整理之后可以得到分数 A A A&#xff0c;然后可以训练Actor。 但RL中有时会出现多数情况下奖励为零&#xff0c;此时我们不知道动…

Verilog基础【二】

3.1 Verilog 连续赋值 关键词&#xff1a;assign&#xff0c; 全加器 连续赋值语句是 Verilog 数据流建模的基本语句&#xff0c;用于对 wire 型变量进行赋值。&#xff1a; assign LHS_target RHS_expression &#xff1b;LHS&#xff08;left hand side&#xff09;…

卷积层+多个输入通道

卷积层多输入输出通道 在深度学习中&#xff0c;卷积神经网络&#xff08;CNN&#xff09;通常用于处理具有多个输入通道的数据。当输入数据具有多个通道&#xff08;例如彩色图像的RGB通道&#xff09;时&#xff0c;卷积操作可以同时在每个通道上进行&#xff0c;并将各通道的…

软件测试-进阶篇

目录 测试的分类1 按测试对象划分1.1 界面测试1.2 可靠性测试1.3 容错性测试1.4 文档测试1.5 兼容性测试1.6 易用性测试1.7 安装卸载测试1.8 安装测试1.9 性能测试1.10 内存泄漏测试 2 按是否查看代码划分2.1 黑盒测试&#xff08;Black-box Testing&#xff09;2.2 白盒测试&a…

新闻管理系统(源码+文档)

新闻管理系统&#xff08;小程序、ios、安卓都可部署&#xff09; 文件包含内容程序简要说明含有功能项目截图客户端新闻详情新闻首页分类退出登录个人中心拨打客服热线注册界面个人资料新闻评论成功 管理端用户管理分类管理新闻管理 文件包含内容 1、搭建视频 2、流程图 3、开…

windows下部署llama.cpp

下载cmake 下载地址 解压&#xff0c;设置Path环境变量D:\CMake\bin 打开cmd输入cmake -version 安装mingw powershell下执行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser iex "& {$(irm get.scoop.sh)} -RunAsAdmin" scoop bucket add extras s…

Android获取本地文件目录

一、实现效果 一个简单的demo。点击按钮&#xff0c;获取本地文件目录&#xff0c;可以选择图片&#xff0c;展示选取的对应图片和展示存储路径。如图所示&#xff1a; 二、实现方式 1. 权限 AndroidManifest.xml文件里面添加权限 <uses-permission android:name"a…

【御控物联】JavaScript JSON结构转换(12):对象To数组——键值互换属性重组

文章目录 一、JSON结构转换是什么&#xff1f;二、核心构件之转换映射三、案例之《JSON对象 To JSON数组》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换…