算法笔记十 线性表 |
您所在的位置:网站首页 › 队列排列成三七 › 算法笔记十 线性表 |
文章目录
链表①简单strcut版的链表②使用构造函数初始化结点的链表1. 约瑟夫问题解法——链表
2. 队列安排题解——链表
链表
C++关于链表 题目描述 一个学校里老师要将班上 N N N 个同学排成一列,同学被编号为 1 ∼ N 1\sim N 1∼N,他采取如下的方法: 先将 1 1 1 号同学安排进队列,这时队列中只有他一个人; 2 − N 2-N 2−N 号同学依次入列,编号为 i i i 的同学入列方式为:老师指定编号为 i i i 的同学站在编号为 1 ∼ ( i − 1 ) 1\sim(i-1) 1∼(i−1) 中某位同学(即之前已经入列的同学)的左边或右边; 从队列中去掉 M ( M < N ) M(M int k, p; scanf("%d%d", &k, &p); if (p == 0) { pos[i] = queList.insert(pos[k], i); //left } else { auto nextIter = next(pos[k]); pos[i] = queList.insert(nextIter, i); //right } } int M; scanf("%d", &M); for (int x, i = 1; i queList.erase(pos[x]); } erased[x] = true; } } int main() { scanf("%d", &N); buildQueue(); bool first = true; for (int x: queList) { if (!first) putchar(' '); first = false; printf("%d", x); } putchar('\n'); return 0; } |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |