卡码网语言基础课 | 14. 链表的基础操作Ⅱ

news2025/1/8 4:29:05

题目:

构建一个单向链表,链表中包含一组整数数据,输出链表中的第 m 个元素(m 从 1 开始计数)。 

要求:
1. 使用自定义的链表数据结构
2. 提供一个 linkedList 类来管理链表,包含构建链表、输出链表元素以及输出第 m 个元素的方法
3. 在 main 函数中,创建一个包含一组整数数据的链表,然后输入 m,调用链表的方法输出第 m 个元素

题解:

#include <iostream>
using namespace std;

//定义链表节点的结构体
struct ListNode{
    int val;
    ListNode *next;
    ListNode(int x) : val(x) , next(nullptr){} 
};


int main(){
    int n, val, k, m;

    ListNode* dummyHead = new ListNode(0); //创建虚拟头结点
    
    cin >> n >> k; //输入n和k
    
    ListNode* cur = dummyHead; //定义一个指向当前节点的指针cur,初始指向虚拟头结点
    
    for(int i = 0; i < n; i++){
        //或者使用while循环
        
        cin >> val;
        ListNode*  newNode = new ListNode(val); //构造新节点
        cur -> next = newNode; //将新节点接入链表
        cur = cur -> next; //cur指向下一个节点
    }
    
    while(k--){
        cin >> m; //输入k个m,m表示需要输出的节点顺序
        cur = dummyHead; //cur重新指向虚拟头节点,以便重新遍历链表
        
        while(m--){//寻找链表里第m个元素
            if(cur != NULL) cur = cur -> next;
            else break;
        }

        //cur ==NULL 表示m超出了链表长度
        //cur == dummyHead 表示m=0
        if(cur == NULL || cur == dummyHead) cout << "Output position out of bounds." << endl;
        else cout << cur -> val << endl;
    }
    
}

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

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

相关文章

自动标注好用吗?基于SAM和Label Studio搭建半自动实例分割标注平台

文章目录 一、半自动标注二、缺点三、安装方法1、 python版本要求2、下载playground3、SAM安装4、SAM权重下载5、安装label-studio-ml6、启动SAM接口7、SAM启动日志8、安装并启动label-studio9、label-studio启动日志 四、半自动标注使用方法1、创建project并导入数据2、标签设…

多元系的复相平衡

多元系的复相平衡 多元系的吉布斯函数 G-{T,p,n}系统 吉布斯关系 多元系的热力学基本方程

使用Three.js创建导航立方体

什么是导航立方体? 导航立方体是一个交互式的3D控件,它允许用户通过点击和拖动立方体的各个面来改变3D视图的方向。这是一种非常直观的方式,让用户能够轻松地在3D空间中导航。 创建导航立方体 下面是一个基本的步骤,说明如何使用Three.js创建一个导航立方体: // 创建场景…

ICCV 2023 | 动态蛇形卷积(内含即插即用的代码及测试用例)

论文链接&#xff1a; https://arxiv.org/abs/2307.08388 代码链接&#xff1a; https://github.com/YaoleiQi/DSCNet 下面直接上代码&#xff0c;并且源码中也给了测试用例&#xff0c;是一个即插即用的模块 import os import torch import numpy as np from torch impor…

怎么做excel表格的二维码?文件快速做二维码的教程

Excel表格怎么做成二维码来扫码插看呢&#xff1f;Excel是工作中常用的一种文件格式&#xff0c;想要将表格内容分享给其他人查看&#xff0c;那么将表格生成二维码的方法会更加的方便快捷&#xff0c;其他人只需要扫描二维码就可以查看或者下载文件。表格excel二维码可以通过文…

Rust语言入门教程(六) - 字符串类型

在Rust中&#xff0c; 字符串类型其实是一个比较复杂的话题。在Rust的标准库中&#xff0c;至少都提供了6种字符串类型&#xff0c;我们平常使用的最多的是其中的两种。这两种类型互相之间也有所关联&#xff1a; str&#xff1a; 字符串切片String 字符串 其中&#xff0c; 字…

细说数据仓库上篇

在谈数仓之前&#xff0c;先来看下面几个问题&#xff1a; 数仓为什么要分层&#xff1f; 用空间换时间&#xff0c;通过大量的预处理来提升应用系统的用户体验&#xff08;效率&#xff09;&#xff0c;因此数据仓库会存在大量冗余的数据&#xff1b;不分层的话&#xff0c;…

高效运维管理的7个要点

T管理和运维工作涵盖了各行业的各岗位中&#xff0c;如何提高工作效率&#xff0c;规避风险&#xff0c;更好的做好IT管理和运维工作&#xff0c;已经成为一个不断探索和研究的新兴课题。因此&#xff0c;应从两个层面加强和完善IT管理和运维工作&#xff0c;可以改善IT运维工作…

为什么要编写测试用例,自己知道不就行了吗

“为什么要编写测试用例&#xff0c;测试用例写给谁看”&#xff0c;这个问题看似简单&#xff0c;但却涵盖了一系列复杂的考虑因素&#xff0c;并不太好回答。 为了向各位学测试的同学们解释清楚“为什么编写测试用例是至关重要的”&#xff0c;我将通过以下5个方面进行展开&…

MySQL-05-MySQL的日志系统

1-redo log(重做日志) 在MySQL里也有这个问题&#xff0c;如果每一次的更新操作都需要写进磁盘&#xff0c;然后磁盘也要找到对应的那条记录&#xff0c;然后再更新&#xff0c;整个过程IO成本、查找成本都很高。MySQL里经常说到的WAL技术&#xff0c;WAL的全称是Write-Ahead L…

pmos防反保护电路的设计,pmos烧毁原因分析

概述 汽车电源系统常在极为恶劣的环境下运行&#xff0c;数以百计的负载挂在汽车电池上&#xff0c;需要同时确定负载状态的汽车电池可能面临极大的挑战。当负载处于不同工作条件和潜在故障状态时&#xff0c;设计人员需要考虑电源线产生的各种脉冲可能带来的影响。 本系列的上…

VSD Viewer for Mac(Visio绘图文件阅读器)

VSD Viewer for Mac版是mac上一款非常强大的Visio绘图文件阅读器&#xff0c;它为打开和打印Visio文件提供了简单的解决方案。可以显示隐藏的图层&#xff0c;查看对象的形状数据&#xff0c;预览超链接。还可以将Visio转换为包含图层&#xff0c;形状数据和超链接的PDF文档。 …

RHEL开发者授权注册

$ sudo subscription-manager register --usernameusername --passwordpassword$ sudo subscription-manager attach --auto查看是否注册 Red Hat 订阅管理&#xff0c;请运行以下命令&#xff1a; $ sudo subscription-manager list --installed

mysql账户密码获取

数据库安装目录 MySQL\data\mysql 里面的user.MYD文件&#xff0c;需要编译查看 数据库里的user表 库下面的user表拿到后&#xff0c;直接解密密码即可 网站配置文件 conn、config、data、sql、common 、inc这些文件 比如pikachu\inc目录下的config.inc.php文件的内容会显示…

详解如何使用VSCode搭建TypeScript环境(适合小白)

搭建Javascript环境 因为TypeScript不能直接在浏览器上运行。它需要编译器来编译并生成JavaScript文件。所以需要首先安装好javascript环境&#xff0c;可以参考文章&#xff1a; 详解如何使用VS code搭建JavaScript环境&#xff08;适合小白&#xff09;_vscode配置javascri…

从 15000 家参赛企业脱颖而出,涛思数据荣获中国创新创业大赛“优秀企业”

近年来&#xff0c;以大数据、人工智能、物联网、新型显示、高性能集成电路、5G通信、云计算等为代表的创新技术加速突破应用&#xff0c;在传统行业的数字化转型进程中发挥着重要作用&#xff0c;催生出一系列新产品、新技术、新业态&#xff0c;形成了强劲的数字经济发展新动…

单细胞featureplot美化修改-自定义修改图片样式-umap密度图画等高线

大家好&#xff0c;欢迎来的单细胞图片美化专辑 1.如何修改seruat对象的行名 2.FeaturePlot如何把所有阳性表达的spot放到图的前面 在单细胞实践中&#xff0c;我发现不同的客户对画图需求并不一致&#xff0c;这可能和个人审美有关吧。本专辑着重于各种各样的单细胞个性化绘…

冯·诺依曼体系结构和操作系统

目录 一、冯诺依曼体系结构 1、初见结构 2、对体系结构的理解 3、总结 二、操作系统 1、概念 2、作用 一、冯诺依曼体系结构 1、初见结构 数学家冯诺依曼提出了计算机制造的三个基本原则&#xff0c;即采用二进制逻辑、程序存储执行以及计算机由五个部分组成&#xff08…

【C语言】优化通讯录管理系统2

本篇博客是基于上一篇博客写出来的&#xff0c;了解上一篇博客 大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家再次优化上一篇的通讯录&#xff0c;实现将录入的数据在程序退出后存储到文件中&#xff0c;在下一次程序开始时打开文件获取数据&#xff0c;如果你觉得我写…

耶鲁博弈论笔记

编辑记录&#xff1a; 1126&#xff1a;开个新坑&#xff0c;耶鲁大学的博弈论课程&#xff0c; 和专业相关不大&#xff0c;纯兴趣&#xff0c;尽量写好一点吧 1. 首先指出博弈论是一种研究策略形式的方法&#xff0c;对于经济学中&#xff0c;完全竞争市场只能被动接受均衡…