单链表学习

//静态链表,只往后看,找前面必须遍历
//算法题用数组解题更快速

//初始化,头节点为空

//将x插入到头节点

//将x插到结点k的后面

//将下标k的后面的点删掉

#include<algorithm>
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>

using namespace std;
//静态链表,只往后看,找前面必须遍历
//算法题用数组解题更快速
const int N = 100010;
int head;//头指针位置
int e[N];//表示结点i的值是多少
int ne[N];//结点i的下一个节点
int idx;//存储当前已经用到哪个地址
//初始化,头节点为空
void init(){
    head = -1;
    idx = 0;
}
//将x插入到头节点
void add(int x){
    e[idx] = x;
    ne[idx] = head;
    head = idx;//head指向idx指针
    idx++;
}
//将x插到结点k的后面
void addkx(int k,int x){
    e[idx] = x;
    ne[idx] = ne[k];
    ne[k] = idx;
    idx++;
}
//将下标k的后面的点删掉
void deletek(int k){
    ne[k] = ne[ne[k]];
}

例题:826. 单链表

代码:

#include<algorithm>
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>

using namespace std;
//静态链表,只往后看,找前面必须遍历
//算法题用数组解题更快速
const int N = 100010;
int head;//头指针位置
int e[N];//表示结点i的值是多少
int ne[N];//结点i的下一个节点
int idx=1;//存储当前已经用到哪个地址
//初始化,头节点为空
void init(){
    head = -1;
    idx = 0;
}
//将x插入到头节点
void add(int x){
    e[idx] = x;
    ne[idx] = head;
    head = idx;//head指向idx指针
    idx++;
}
//将x插到结点k的后面
void addkx(int k,int x){
    e[idx] = x;
    ne[idx] = ne[k];
    ne[k] = idx;
    idx++;
}
//将下标k的后面的点删掉
void deletek(int k){
    ne[k] = ne[ne[k]];
}

int main()
{
	init();
    int n;
    scanf("%d",&n);
    
    while(n--){
        char op[2];
        scanf("%s",&op);
        if(op[0] == 'H'){//在头节点后面插入
            int x;
            scanf("%d",&x);
            add(x);
        }
        if(op[0] == 'D'){//要特判删除头指针 
            int k;
            scanf("%d",&k);
            if(!k) head = ne[head]; 
            else deletek(k-1);
        }
        if(op[0] == 'I'){
            int x,k;
            scanf("%d%d",&k,&x);
            addkx(k-1,x);
        }
    }
    
    for(int i=head;i!=-1;i=ne[i]){
        printf("%d ",e[i]);
    }
    return 0;
}

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

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

相关文章

STL —— list

博主首页&#xff1a; 有趣的中国人 专栏首页&#xff1a; C专栏 本篇文章主要讲解 list模拟实现的相关内容 &#xff11;. list简介 列表&#xff08;list&#xff09;是C标准模板库&#xff08;STL&#xff09;中的一个容器&#xff0c;它是一个双向链表数据结构&#xff0c…

嵌入式开发学习---(部分)数据结构(无代码)

数据结构 为什么学习数据结构&#xff1f; 1&#xff09;c语言告诉如何写程序&#xff0c;数据结构是如何简洁高效的写程序 2&#xff09;遇到一个实际问题&#xff0c;需要写程序去实现相应功能&#xff0c;需要解决那两个方面的问题&#xff1f; 如何表达数据之间的逻辑规律…

20240327-PCL-1.41.0安装说明-VS2022-CMAKE篇

20240327-PCL-1.41.0安装说明-VS2022-CMAKE篇 一、软件环境 Win10 x64 22h2 Junecmake 3.29.1VSCODE v1.87.2GIT v2.29.2标签&#xff1a;win10 22h2 vscode cmake分栏&#xff1a;C 二、硬件环境 Win10 x64的PC台式机 三、下载最新版本PCL-1.41.0 方法一 https://githu…

上市公司股权性质演变:2000-2022年集中度数据深度剖析(5W+数据)

01、数据介绍 股权性质主要指的是股份公司中不同性质的股东即股权所有人的身份&#xff0c;以及他们各自持有的股份比例。在我国&#xff0c;股权性质通常涉及国家股东、法人股东&#xff08;包括机构投资者&#xff09;和流通股东等。 股权集中度则是反映公司股东对管理者的…

博客部署004-成功截图

1、前台client 2、后台管理admin 3、后端API

【Docker】搭建开源免费的书签管理系统 - OneNav

【Docker】搭建开源免费的书签管理系统 - OneNav 前言 本教程基于绿联的NAS设备DX4600 Pro的docker功能进行搭建。 简介 OneNav是一个基于PHP的轻量级网址导航系统&#xff0c;旨在帮助用户整理和访问他们的常用网站。 OneNav的主要特点如下&#xff1a; 美观易用&#x…

【Unity音游制作】音符和音符对象池的创建【二】

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

【Spring进阶系列丨第七篇】Spring框架新注解分类及详解

文章目录 一、Spring新注解1.1、Configuration注解1.1.1、定义一个类1.1.2、使用Configuration注解修饰类1.1.3、作用 1.2、Bean注解1.2.1、定义bean1.2.2、在主配置类中注册bean1.2.3、测试容器中是否有该bean1.2.4、注册bean的同时可以指定bean名称1.2.5、补充内容1.2.5.1、案…

初始Java篇(JavaSE基础语法)(6)(继承和多态)(上)

Java学习篇 个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 目录 继承篇 为什么需要继承&#xff1f; 继承概念 继承的语法 父类成员访问 super关键字 子类构造方法 super和this的比较 再谈…

柯桥外语机构商务英语学习,“五星级”酒店到底是five star还是five stars?这个千万别搞错!

“五星级酒店”的英语表达 关于酒店&#xff0c;大家都知道有星级之分&#xff1b;其中&#xff0c;最高级的酒店当属“五星级”了&#xff1b; 那么问题来了&#xff0c;这个“五星级”的英语&#xff0c;究竟是“five star”&#xff0c;还是“five stars”呢&#xff1f; 其…

11_Spring-IOC/DI

文章目录 SpringIOC控制反转&#xff08;存&#xff09;DI依赖注入&#xff08;取&#xff09;Spring的优点Spring的核心技术入门案例入门案例1入门案例2 注解配置类组件注册功能&#xff08;IOC&#xff09;类直接注册配置类中注册&#xff08;JavaConfig&#xff09; 组件注入…

Premiere Pro 2024:赋予创意翅膀,让你的视频飞翔 mac/win版

Premiere Pro 2024&#xff0c;作为Adobe旗下的旗舰视频编辑软件&#xff0c;自推出以来&#xff0c;一直在视频制作领域占据着重要的地位。随着技术的不断进步和创新&#xff0c;Premiere Pro 2024为用户带来了前所未有的编辑体验&#xff0c;重新定义了视频制作的标准。 Pre…

网络原理 - HTTP / HTTPS(5)——https协议

目录 一、HTTPS是什么 为什么要进行加密 二、“加密” 是什么 三、HTTPS的工作过程 &#xff08;1&#xff09;引入对称加密 对称密钥的特点&#xff1a; &#xff08;2&#xff09;引入非对称加密 非对称加密的特点&#xff1a; &#xff08;3&#xff09;中间人攻击…

【C++】STL--vector

目录 vector的使用 vector的定义 vector iterator的使用 vector空间增长问题 vector增删查改 vector深度剖析及模拟实现 vector核心接口模拟实现 使用memcpy拷贝问题 迭代器失效问题 vector的使用 vector的定义 C中&#xff0c;vector是一个模版&#xff0c;第一个参…

PHP数据类型

华子目录 数据类型PHP的八种数据类型基本数据类型&#xff0c;4类复合数据类型&#xff0c;2类特殊数据类型&#xff0c;2类 类型转换在PHP中有两种类型转换方式其他类型转bool类型其他类型转数值类型实例 类型判断获取和设定变量类型获取gettype(变量名)设置settype(变量名,类…

蓝桥杯单片机第十四届省赛模拟考试一

一、基本要求 使用大赛组委会提供的国信长天单片机竞赛实训平台&#xff0c;完成本试题的程序设计与调试。程序编写、调试完成后&#xff0c;选手需通过考试系统提交以准考证号命名的hex文件。不符合以上文件提交要求的作品将被评为零分或者被酌情扣分。 硬件设置&#xff1a; …

数组-二维数组

本笔记为47 数组-二维数组定义方式_哔哩哔哩_bilibili的学习笔记 二维数组 定义方式 注&#xff1a; 常用第二种方式定义&#xff0c;原因&#xff1a;第二种方式更清晰列数可以省行数不可省 &#xff0c;详见上述第四种定义方式 示例&#xff1a; 二维数组 数组名 作用&am…

CSS层叠样式表学习(引入方式)

&#xff08;大家好&#xff0c;今天我们将继续来学习CSS引入方式的相关知识&#xff0c;大家可以在评论区进行互动答疑哦~加油&#xff01;&#x1f495;&#xff09; 五、CSS的三种样式表 5.1 CSS的三种样式表 按照CSS样式书写的位置(或者引入方式)&#xff0c;CSS样式表可…

笔记-Building Apps with the ABAP RESTful Application Programming Model-Week3

Week3 Unit 1: The Enhanced Business Scenario 本节介绍了将要练习的demo的业务场景,在前两周成果的基础上,也就是只读列表,也可以说是报表APP基础上启用了事务能力,也就是CURD以及自定义业务功能的能力,从创建基本的behavior definition,然后behavior definition proj…

基于GD32的简易数字示波器(2)- 原理图设计

这期记录的是项目实战&#xff0c;做一个简易的数字示波器。 教程来源于嘉立创&#xff0c;202&#xff1a;简易数字示波器项目文档 语雀 下图为示波器的指标 具有选择交流耦合还是直流耦合功能、输入信号不衰减或衰减50倍 输入频率理论最大800KHz输入幅值&#xff08;不衰…