当前位置: 首页 > news >正文

A (1087) : DS单链表--类实现

Description

用C++语言和类实现单链表,含头结点

属性包括:data数据域、next指针域

操作包括:插入、删除、查找

注意:单链表不是数组,所以位置从1开始对应首结点,头结点不放数据

类定义参考

#include<iostream>
using namespace std;
#define ok 0
#define error -1// 链表结点定义
class ListNode
{
public:int data;ListNode *next;ListNode() {next = NULL;}
};
// 带头结点的单链表类定义
class LinkList
{
public:ListNode *head;int len;// 操作定义LinkList();~LinkList();ListNode *LL_index(int i);      // 返回第i个结点的指针,如果不存在返回NULLint LL_get(int i);              // 获取第i个元素的数据int LL_insert(int i, int item); // 把数值item插入第i个位置int LL_del(int i);              // 删除第i个结点void LL_display();              // 输出单链表的内容
};
LinkList::LinkList()
{head = new ListNode();len = 0;
}
LinkList::~LinkList()
{ListNode *p, *q;p = head;while(p != NULL){q = p;p = p->next;delete q;}len = 0;head = NULL;
}
void LinkList::LL_display()
{ListNode *p;p = head->next;while(p){cout << p->data << ' ';p = p->next;}cout << endl;
}

Input

  • 第1行先输入n表示有n个数据,接着输入n个数据
  • 第2行输入要插入的位置和新数据
  • 第3行输入要插入的位置和新数据
  • 第4行输入要删除的位置
  • 第5行输入要删除的位置
  • 第6行输入要查找的位置
  • 第7行输入要查找的位置

Output

数据之间用空格隔开,

第1行输出创建后的单链表的数据

每成功执行一次操作(插入或删除),输出执行后的单链表数据

每成功执行一次查找,输出查找到的数据

如果执行操作失败(包括插入、删除、查找等失败),输出字符串error,不必输出单链表

Sample

 

 AC代码:

#include<iostream>
using namespace std;
#define ok 0
#define error -1// 链表结点定义
class ListNode
{
public:int data;ListNode* next;ListNode() { next = NULL; }
};
// 带头结点的单链表类定义
class LinkList
{
public:ListNode* head;int len;// 操作定义LinkList();ListNode* LL_index(int i) {};      // 返回第i个结点的指针,如果不存在返回NULLvoid LL_get(int i) {if (i <= 0 || i > len ) {cout << "error" << endl;}else {ListNode* p;p = head;for (int j = 0; j < i; j++) {p = p->next;}cout << p->data << endl;}};              // 获取第i个元素的数据void LL_insert(int i, int item) {if (i <= 0 || i > len + 1) {cout << "error" << endl;}else {ListNode* p;p = head;for (int j = 1; j < i; j++) {p = p->next;}ListNode* s = new ListNode;s->data = item;s->next = p->next;p->next = s;p = s;len++;LL_display();}}; // 把数值item插入第i个位置void LL_del(int i) {if (i <= 0 || i > len) {cout << "error" << endl;}else {ListNode* p;p = head;for (int j = 1; j < i; j++) {p = p->next;}p->next = p->next->next;LL_display();len--;}};              // 删除第i个结点void LL_display();              // 输出单链表的内容
};
LinkList::LinkList()
{head = new ListNode();len = 0;
}
void LinkList::LL_display()
{ListNode* p;p = head->next;while (p){cout << p->data << ' ';p = p->next;}cout << endl;
}int main() {int t;int data;cin >> t;LinkList L;ListNode* p;p = L.head;while (t--) {ListNode* s = new ListNode;L.len++;cin >> data;s->data = data;s->next = p->next;p->next = s;p = p->next;}L.LL_display();int i, item;cin >> i >> item;L.LL_insert(i, item);cin >> i >> item;L.LL_insert(i, item);cin >> i;L.LL_del(i);cin >> i;L.LL_del(i);cin >> i;L.LL_get(i);cin >> i;L.LL_get(i);
}

相关文章:

A (1087) : DS单链表--类实现

Description 用C语言和类实现单链表&#xff0c;含头结点 属性包括&#xff1a;data数据域、next指针域 操作包括&#xff1a;插入、删除、查找 注意&#xff1a;单链表不是数组&#xff0c;所以位置从1开始对应首结点&#xff0c;头结点不放数据 类定义参考 #include<…...

异常:找不到匹配的key exchange算法

目录 问题描述原因分析解决方案 问题描述 PC 操作系统&#xff1a;Windows 10 企业版 LTSC PC 异常软件&#xff1a;XshellPortable 4(Build 0127) PC 正常软件&#xff1a;PuTTY Release 0.74、MobaXterm_Personal_23.1 服务器操作系统&#xff1a;OpenEuler 22.03 (LTS-SP2)…...

Arcgis打开影像分析窗口没反应

Arcgis打开影像分析窗口没反应 问题描述 做NDVI计算的时候&#xff0c;一直点击窗口-影像分析&#xff0c;发现影像分析的小界面一直不跳出来。 原因 后来发现是被内容列表给遮住了&#xff0c;其实是已经出来了的。。 拖动内容列表就能找到。 解决方案 内容列表和影像分…...

Spring(JavaEE进阶系列1)

目录 前言&#xff1a; 1.Servlet与Spring对比 2.什么是Spring 2.1什么是容器 2.2什么是IoC 2.3SpringIoC容器的理解 2.4DI依赖注入 2.5IoC与DI的区别 3.Spring项目的创建和使用 3.1正确配置Maven国内源 3.2Spring的项目创建 3.3将Bean对象存储到Spring&#xff08…...

Flink状态管理与检查点机制

1.状态分类 相对于其他流计算框架,Flink 一个比较重要的特性就是其支持有状态计算。即你可以将中间的计算结果进行保存,并提供给后续的计算使用: 具体而言,Flink 又将状态 (State) 分为 Keyed State 与 Operator State: 1.1 算子状态 算子状态 (Operator State):顾名思义…...

【threejs】基本编程概念及海岛模型展示逻辑

采用three封装模式完成的海岛动画&#xff08;点击这里查看&#xff09; 直接上代码吧 <template><div class"scene"><video id"videoContainer" style"position:absolute;top:0px;left:0px;z-index:100;visibility: hidden"&g…...

python小技巧:创建单链表及删除元素

目前只有单链表&#xff08;无法查找上一个元素&#xff09;&#xff0c;后面再更新循环链表和双链表。 class SingleLinkedList:def createList(self, raw_list):if len(raw_list) 0:head ListNode()else:head ListNode(raw_list[0])cur headfor i in range(1, len(raw_l…...

ADuM1250 ADuM1251 模块 I2C IIC总线2500V电磁隔离 接口保护

功能说明&#xff1a; 1&#xff0c;2500V电磁隔离&#xff0c;2通道双向I2C&#xff1b; 2&#xff0c;支持电压在3到5.5V&#xff0c;最大时钟频率可达1000KHz&#xff1b; 3&#xff0c;将该隔离模块接入总线&#xff0c;可以保护主MCU引脚&#xff0c;降低I2C总线上的干…...

C# 把多个dll合成一个dll

Nuget 下载ILMerge两个工程 dog为测试工程 TestIlmerge为准备合并的类库 如下图所示&#xff0c; 由于我们引用下面4个库 正常生成后&#xff0c;会有TestIlmerge.dll和下面的这4个dll 只生成TestIlmerge.dll 打开工程文件 在最下方加入以下两段 <Target Name"ILMerge…...

scipy.sparse.coo_matrix.sum()关于axis的用法

以下面的矩阵为例 [1,2,0] [0,3,0] [0,0,0]示例代码 from scipy.sparse import coo_matrix# 创建一个稀疏矩阵 data [1, 2, 3] row [0, 0, 1] col [0, 1, 1] sparse_matrix coo_matrix((data, (row, col)), shape(3,3))# 计算稀疏矩阵中每行非零元素的总和 sum_of_column…...

C++类与对象(下)

文章目录 1.非类型模板2.模板特化2.1.类模板特化2.1.1.全特化2.1.2.偏特化 2.2.函数模板特化 3.函数模板声明定义分离 之前我们学习的模板能达到泛型的原因是&#xff1a;使用了“泛型的类型”&#xff0c;但是如果经过后面的“造轮子”&#xff08;后面会尝试实现一下 STL的一…...

SpringBoot——》引入Redis

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…...

C# newtonsoft序列化将long类型转化为字符串

/// <summary> /// 转化为json的时候long类型转为string /// </summary> public class LongJsonConverter: JsonConverter {public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer){try{return r…...

黑马点评-02使用Redis代替session,Redis + token机制实现

Redis代替session session共享问题 每个Tomcat中都有一份属于自己的session,所以多台Tomcat并不共享session存储空间,当请求切换到不同tomcat服务时可能会导致数据丢失 用户第一次访问1号tomcat并把自己的信息存放session域中, 如果第二次访问到了2号tomcat就无法获取到在1号…...

arm 点灯实验代码以及现象

.text .global _start _start: 1.设置GPIOE寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28 LDR R0,0x50000A28 LDR R1,[R0] ORR R1,R1,#(0x1<<4) 第4位置1 STR R1,[R0] 1.设置GPIOF寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28 LDR R…...

选择适合普通公司的项目管理软件

不管是打工人还是学生党都适合使用Zoho Projects项目管理软件。利用项目概览功能&#xff0c;将整体项目尽收眼底&#xff0c;作为项目管理者&#xff0c;项目日程、进度都可见&#xff0c;Zoho Projects项目管理APP助推项目每一环节的进展&#xff0c;更便于管理者设计项目的下…...

E (1081) : DS堆栈--逆序输出(STL栈使用)

Description C中已经自带堆栈对象stack&#xff0c;无需编写堆栈操作的具体实现代码。 本题目主要帮助大家熟悉stack对象的使用&#xff0c;然后实现字符串的逆序输出 输入一个字符串&#xff0c;按字符按输入顺序压入堆栈&#xff0c;然后根据堆栈后进先出的特点&#xff0…...

访问者模式 行为型设计模式之九

1.定义 在不改变数据结构的前提下&#xff0c;增加作用于一组对象元素的新功能。 2.动机 访问者模式适用于数据结构相对稳定的系统它把数据结构和作用于数据结构之上的操作之间的耦合解脱开&#xff0c;使得操作集合可以相对自由的演化。访问者模式的目的是要把处理从数据结构…...

JVM垃圾回收之JVM GC算法探究

JVM垃圾回收之JVM GC算法探究 在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;垃圾回收&#xff08;Garbage Collection&#xff0c;GC&#xff09;是自动管理内存的重要机制&#xff0c;它负责回收程序中不再使用的对象所占用的内存。GC算法是垃圾回收的核心&#xf…...

Django 前端模板显示换行符、日期格式

linebreaksbr 显示换行符 <td>{{ data.sku_list|default:"无"|linebreaksbr }}</td> date:"Y年m月d日 H:i" 设置日期格式 <td>{{ data.submit_time|date:"Y年m月d日 H:i" }}</td> 其他语法 forloop 获取循环的索引 …...

3步解锁专业级HDR画质:MPC Video Renderer完全使用指南

3步解锁专业级HDR画质&#xff1a;MPC Video Renderer完全使用指南 【免费下载链接】VideoRenderer Внешний видео-рендерер 项目地址: https://gitcode.com/gh_mirrors/vi/VideoRenderer 还在为Windows播放HDR视频效果不佳而烦恼吗&#xff1f;MPC…...

3分钟掌握AI虚拟试衣:OOTDiffusion让你告别试衣间排队

3分钟掌握AI虚拟试衣&#xff1a;OOTDiffusion让你告别试衣间排队 【免费下载链接】OOTDiffusion [AAAI 2025] Official implementation of "OOTDiffusion: Outfitting Fusion based Latent Diffusion for Controllable Virtual Try-on" 项目地址: https://gitcode…...

从‘Hello World’到工业通信:我的第一个C++ ADS客户端连接倍福PLC踩坑实录

从零搭建C ADS客户端&#xff1a;一位工程师的倍福PLC连接实战手记 第一次在Visual Studio里看到那个红色的编译错误时&#xff0c;我盯着屏幕足足愣了五分钟。"LNK2019: 无法解析的外部符号 __imp_AdsPortOpen"&#xff0c;这行冰冷的报错彻底击碎了我以为照着官方…...

高性价比AI编程神器Claude Code+deepseek v4 pro+vscode——详细安装指南(2026最新版)

一.简介 这套组合性价比极高。关于Claude Code&#xff1a;它由Anthropic公司打造&#xff0c;是直接运行在终端中的AI编程助手&#xff0c;让你不用离开命令行就能完成代码生成、调试、重构、甚至Git提交等各种开发任务。本文将带你完成安装与配置。众所周知Claude 模型集强大…...

Google I/O 2026发布Gemini 3.5 Flash:性能超越3.1 Pro,输出速度快4倍!

Google在I/O 2026上正式发布Gemini 3.5 Flash&#xff0c;这是其最新一代结合前沿智能与行动能力的模型系列&#xff0c;在多项基准测试中表现出色&#xff0c;输出token速度更是其他前沿模型的4倍。 性能卓越 3.5 Flash定位为迄今最强的Agentic和编程模型&#xff0c;在Termin…...

Windows进程注入技术深度解析:从DLL注入到反射式加载

1. 项目概述与核心价值在Windows安全研究、恶意软件分析乃至一些高级的软件开发场景中&#xff0c;“进程注入”是一个绕不开的核心技术点。简单来说&#xff0c;它指的是将一个代码模块&#xff08;通常是DLL&#xff09;或一段代码&#xff08;Shellcode&#xff09;加载到另…...

水质在线监测系统嵌入式工控机选型与实战指南

1. 水质在线监测&#xff1a;从传统抽检到智慧物联的必然之路水&#xff0c;是生命之源&#xff0c;也是城市运行的命脉。过去&#xff0c;我们了解水源地的水质状况&#xff0c;主要依赖人工定期采样、送回实验室分析。这种方式周期长、成本高&#xff0c;面对突发性污染事件&…...

[STM32U3] 【STM32U385RG 测评】02+调试串口1输出字符串

一&#xff1a;:STM32U385 串口知识分享 通用同步/异步收发器(USART) 这些设备有两个嵌入式通用同步接收器发送器(USART1和USART3)以及两个通用异步接收器发送器(UART4和UART5) 该USART提供了一个灵活的手段来执行全双工数据交换与外部设备需要一个行业标准的NRZ异步串行数据格…...

Redis对象类型与底层数据结构

一、Redis对象类型概述 1.1 Redis数据类型总览 Redis提供了丰富的数据类型&#xff0c;用于不同的业务场景&#xff1a;对象类型说明典型场景String字符串缓存、计数器、分布式锁List双向链表队列、消息队列、最新列表Hash哈希表存储对象、购物车Set无序集合好友关系、抽奖Zset…...

openssl基于ede3的加密和解密

基于ede3的加密和解密当前提供模式有cfb和cbc数据长度非向量整数倍特别注意当数据长度是非向量证书倍的时候该如何处理数据openssl 版本 OpenSSL 1.1.1 11 Sep 2018验证结果&#xff1a; 明文 100&#xff1a; 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14…...