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

lanqiaoOJ 1112:小王子双链表 ← STL list

【题目来源】
https://www.lanqiao.cn/problems/1112/learning/

【题目描述】
小王子有一天迷上了排队的游戏,桌子上有标号为 1-10 的 10 个玩具,现在小王子将他们排成一列,可小王子还是太小了,他不确定他到底想把那个玩具摆在哪里,直到最后才能排成一条直线,求玩具的编号。已知他排了 M 次,每次都是选取标号为 X 个放到最前面,求每次排完后玩具的编号序列。
要求一:采用循环链表解决

【输入格式】
第一行是一个整数 M,表示小王子排玩具的次数。
随后 M 行每行包含一个整数 X,表示小王子要把编号为 X 的玩具放在最前面。

【输出格式】
共 M 行,第 i 行输出小王子第 i 次排完序后玩具的编号序列。

【输入样例】
5
3
2
3
4
2

【输出样例】
3 1 2 4 5 6 7 8 9 10
2 3 1 4 5 6 7 8 9 10
3 2 1 4 5 6 7 8 9 10
4 3 2 1 5 6 7 8 9 10
2 4 3 1 5 6 7 8 9 10

【算法分析】
★ STL 中的 
list 就是数据结构中的双链表

【算法代码】

#include <bits/stdc++.h>
using namespace std;
 
list<int> ls;
void init() {
    for(int i=1; i<=10; i++) {
        ls.push_back(i);
    }
}
 
int main() {
    init();
    int m;
    cin>>m;
    while(m--) {
        int x;
        cin>>x;
        ls.remove(x);
        ls.push_front(x);
        for(auto i:ls) cout<<i<<" ";
        cout<<endl;
    }
 
    return 0;
}
 
/*
in:
5
3
2
3
4
2
out:
3 1 2 4 5 6 7 8 9 10
2 3 1 4 5 6 7 8 9 10
3 2 1 4 5 6 7 8 9 10
4 3 2 1 5 6 7 8 9 10
2 4 3 1 5 6 7 8 9 10
*/



【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/143416784



 


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

相关文章:

  • 跨平台Flutter 、ReactNative 开发原理
  • 【python/C++ 使用 Optimum-Intel 和 OpenVINO GenAI 优化和部署大模型 IntelCPU/集显GPU/N卡GPU】
  • Anolis8防火墙安全设置
  • HTML 基础标签——结构化标签<html>、<head>、<body>
  • 【Unity基础】粒子系统与VFX Graph的区别
  • 【Java Web】搭建Web环境以及初识JSP Tomcat
  • “微软蓝屏”事件暴露了网络安全哪些问题?
  • Python网络爬虫入门篇!
  • Python小白学习教程从入门到入坑------第二十七课 魔法方法(语法进阶)
  • 【数据结构】堆:TOK问题
  • Spring Boot 与 Vue 共筑二手书籍交易卓越平台
  • 可选链操作符(Optional Chaining)
  • unity3d——关于GetComponent<T>()
  • 解决Knife4j 接口界面UI中文乱码问题
  • 扩展卡尔曼滤波(EKF)的限制
  • 西南科技大学C++实验作业3——容器使用和文件输入输出流
  • 实现数传数据转网口(以太网)和遥控器SBUS信号转串口的功能
  • leetcode 75.颜色分类
  • Python的struct打包通讯数据头文件
  • 杨辉三角——c语言
  • 浏览器内核版本更新:Chrome 130✔
  • 【MySQL】函数
  • 网络安全求职指南_看完这篇就足够了~
  • c++设计模式demo
  • 【Linux】Linux安全与密钥登录指南
  • 工作管理实战指南:利用Jira、Confluence等Atlassian工具打破信息孤岛,增强团队协作【含免费指南】