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

小猴子摆玩具

小猴子有一天迷上了排队的游戏,他手上有标号为 1~10 的 10 个玩具,现在小猴子将它们排成一列,可小猴子不确定到底想把哪个玩具摆在哪里,直到最后才能排成一条直线,求玩具的编号。已知他排了 M 次,每次都是选取标号为X的放到最前面,求每次排完后玩具的编号序列。

 M,表示小猴子排玩具的次数。随后 M 行,每行包含一个整数 X,表示小猴子要把编号为 X 的玩具放在最前面。

把1~10这10个数据存到10个节点toy[1]~toy[10]

小技巧:toy[0]始终是链表的头,但是不用它存数据,真正的数据在它的后面。当链表的时候,直接从toy[0]开始即可。

 

#include <bits/stdc++.h>

using namespace std;

struct node{

    //int id; //没用到

    int data;

    int nextid;

}toy[20];

void init(){ //初始化链表

    toy[0].nextid = 1; //节点0是链表头,它指向下一个节点1

    toy[10].nextid = -1; //最后的节点10指向 -1,表示没有后续节点

    for (int i = 1; i <= 10; i++) {

        toy[i].data = i; //节点的值

        toy[i].nextid = i + 1; //指针,指向下一个节点

    }

}

void tohead(int x){ //把x放到最前面

    int p = 0; //p是x的前一个节点

}

while(toy[p].nextid != -1){ //遍历链表,查找x的前一个节点p

    if (toy[toy[p].nextid].data == x) break;

    p = toy[p].nextid;

}

int now = toy[p].nextid; //now是x所在的节点

toy[p].nextid = toy[now].nextid; //删除x节点

toy[now].nextid = toy[0].nextid; 

toy[0].nextid = now; //把x放到最前面

}

void out(){ //输出链表,就是题目的编号序列

    int head = toy[0].nextid; //toy[0]始终是链表头,并且不用来存编号

    for (int i = 1; i <= 10; i++){

        cout << toy[head].data << ' ';

        head = toy[head].nextid;

    }

    cout << endl;

}

int main(){

    init();

    int m;

    cin >> m;

    while (m--){

        int x;

        cin >> x;

        tohead(x);

        out();

    }

    return 0;

}

相关文章:

  • python--=的用法
  • 用python制作一个打地鼠游戏
  • Condition源码解读(二)
  • 基于物理约束的稀疏IMU运动捕捉系统
  • Spring AI 集成多个大语言模型
  • canal高可用配置
  • Linux中的Shell脚本基础
  • 2025年5月通信科技领域周报(5.19-5.25):太赫兹通信规模商用启动 空天地一体化网络加速落地
  • 亚古数据:查询BVI(英属维尔京群岛)公司可以获取到什么信息和文件?
  • Cesium实现标注动画
  • get_rga_thread线程和low_camera_venc_thread线程获取低分辨率VENC码流数据
  • WES(二)——数据预处理
  • 美颜SDK功能模块化设计实战:滤镜、贴纸与人脸识别的协同实现
  • YOLOv8 区域计数系统:基于计算机视觉的智能物体计数方案
  • 各类效果名称收集
  • Nacos 服务注册发现案例:nacos-spring-cloud-example 详解
  • Django实现文件上传
  • 数据结构 -- 树相关面试题
  • 网络出版服务许可证年检
  • go实例化结构体的方式
  • 网站建设的网站定位/企业网址
  • 沈阳网站排名工具/短视频推广引流方案
  • 公司做网站哪家好/海淀区seo多少钱
  • 做网上卖酒的网站有几家/长春网络优化哪个公司在做
  • 网站推广方法主要有哪几种/天津seo实战培训
  • 专做网游视频的网站/机器人编程培训机构排名