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

【C++语言】卡码网语言基础课系列----14. 链表的基础操作II

文章目录

  • 练习题目
    • 链表的基础操作II
    • 具体代码实现
  • 小白寄语
    • 诗词共勉

练习题目

链表的基础操作II

题目描述

请编写一个程序,实现以下操作:
构建一个单向链表,链表中包含一组整数数据,输出链表中的第 m 个元素(m 从 1 开始计数)。
要求:

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

输入描述

第一行包含两个整数 n 和 k,n 表示需要构建的链表的长度,k 代表输入的 m 的个数。
接下来一行包含 n 个整数,表示链表中的元素。
接下来一行包含 k 个整数,表示输出链表中的第 m 个元素。

输出描述

测试数据输出占 k 行。
每行输出链表中的第 m 个元素。如果 m 位置不合法,则输出“Output position out of bounds.”。

输入示例

5 5
1 2 3 4 5
4 3 2 9 0

输出示例

4
3
2
Output position out of bounds.
Output position out of bounds.

具体代码实现

#include <iostream>
using namespace std;

// 定义链表节点结构体
typedef struct ListNode{
    int val;
    ListNode *next;
    ListNode(int x) : val(x), next(nullptr) {} // 通过构造函数初始化链表
}ListNode;

int main()
{
    int n, k;
    cin >> n >> k; // 第一行包含两个整数,需要一次性输入完毕
    ListNode *dummyNode = new ListNode(0); // 创建哑节点
    ListNode *cur = dummyNode;
    // 开始构造链表
    while (n--) {
        int val;
        cin >> val;
        ListNode *newNode = new ListNode(val);
        cur->next = newNode;
        cur = cur->next;
    }
    
    // 开始输出测试数据
    while (k--) {
        int m;
        cin >> m;
        cur = dummyNode; // 将当前节点,先指向哑节点
        while (m--) { // 遍历获取第m个元素值
            if (cur != nullptr) {
                cur = cur->next;
            } else {
                break;
            }
        }
        if (cur == dummyNode || cur == nullptr) {
            cout << "Output position out of bounds." << endl;
        } else {
            cout << cur->val << endl;
        }
        
    }
    
    
    return 0;
}

小白寄语

扎根,做好手头的事,精进。

诗词共勉

人生若只如初见,何事秋风悲画扇。
等闲变却故人心,却道故人心易变。
-----------纳兰性德


http://www.kler.cn/a/529591.html

相关文章:

  • Kafka常见问题之 java.io.IOException: Disk error when trying to write to log
  • Java小白入门教程:LinkedList
  • React 封装高阶组件 做路由权限控制
  • 神经网络的数据流动过程(张量的转换和输出)
  • Autogen_core源码:_agent_instantiation.py
  • 【AI】DeepSeek 概念/影响/使用/部署
  • DeepSeek与其他GPT模型的比较分析
  • 在 crag 中用 LangGraph 进行评分知识精炼-下
  • 7 [拒绝Github投毒通过Sharp4SuoBrowser分析VisualStudio隐藏文件]
  • redis原理之数据结构
  • c语言二级注意事项
  • 使用 Numpy 自定义数据集,使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测,对预测结果计算精确度和召回率及F1分数
  • C29.【C++ Cont】STL库:动态顺序表(vector容器)
  • LeetCode //C - 567. Permutation in String
  • IM 即时通讯系统-42-基于netty实现的IM服务端,提供客户端jar包,可集成自己的登录系统
  • 【Redis】Redis 经典面试题解析:深入理解 Redis 的核心概念与应用
  • java基础概念63-多线程
  • 【xdoj-离散线上练习】T251(C++)
  • AI技术路线(marked)
  • LeetCode 344: 反转字符串
  • Zabbix 推送告警 消息模板 美化(钉钉Webhook机器人、邮件)
  • 无人机飞手光伏吊运、电力巡检、农林植保技术详解
  • kamailio的kamctl的使用
  • [c语言日寄]C语言类型转换规则详解
  • ZYNQ-AXI DMA+AXI-S FIFO回环学习
  • DirectShow过滤器开发-读视频文件过滤器(再写)