简单的循环链表
来源:互联网 发布:山村诡事以知天命 编辑:程序博客网 时间:2024/04/30 13:14
实验任务
初始的循环链表中有 n 个元素,编号为 1~n,m 次操作,每次操作删除一个数。m 次操作后,按顺序输出在链表中的元素编号。
数据输入
第一行有两个整数 n 和 m,代表 n 个元素和 m 次操作(1<=n<=1000,1<=m
数据输出
输出一行,按顺序输出在链表中的元素编号。
输入示例
5 3
1
2
3
输出示例
3 4
解题思路
用STL中的queue来模拟,其中怎么实现“循环”不太熟悉,还是想了挺久的…
参考代码
#include <iostream> #include <cstdio> #include <queue> #include <algorithm> using namespace std; typedef deque<int>::iterator DIT; int main() { int n,m; while (~scanf("%d %d",&n,&m)){ int i,p,v = 0; deque<int> Q; for (i = 1;i <= n;i++) Q.push_back(i); for (i = 0;i < m;i++){ scanf("%d",&p); v = (v+p)%(n-i); // 关键表达式...其实就是 【当前位置 + 往后几个人 再对 总人数 取模】 起到循环的作用 Q.erase(Q.begin()+v); } DIT pos = Q.begin(); for (;pos != Q.end()-1;pos++) printf("%d ",*pos); printf("%d\n",*pos); } return 0; }
0 0
- 简单的循环链表
- 循环链表的简单应用
- 单向循环链表的简单实现
- 双向循环链表的简单实现
- 循环链表的简单实现
- 循环链表的简单使用
- 一个简单的双向循环链表的实现
- 循环双向链表的创建方法 最简单的循环双向链表
- [Java]单向链表 ,循环链表的简单使用方法
- 线性表--循环链表的简单知识
- 带表 双向循环链表的简单操作
- 数据结构-约瑟夫环的简单实现(循环链表)
- Linux内核中循环链表的简单应用
- c语言 双向循环链表的简单应用
- 两个简单的循环
- 简单的while循环
- 简单的循环语句
- 循环的简单认识
- FastCGI技术
- js 学习,document.getElementsByTagName
- android Service服务
- 3、权限传递
- UnityShareSDK到Xcode流程
- 简单的循环链表
- Android GridView加载大量图片时出现OOM情况
- 程序员学习 线程
- Hello world
- Android之电话监听(利用服务实现)
- OGRE启动过程详解(OGRE HelloWorld程序原理解析)
- Linux内核作业--分析Linux内核创建一个新进程的过程
- 有序链表的合并
- ZOJ3868:GCD Expectation