题库练习 模拟链表(2)

A71455 | 模拟链表(2)

来源编程题
时间限制1s
内存限制512MB
通过 / 提交0/0

题目描述

学校组织同学们(共有 N 名同学)到电影院看电影,张老师想要将每个年级的同学单独组织成一个单向链表(假设:X 年级的同学学号最后一位数字为 X)。

组织方法如下:

  1. 每位同学按来的先后顺序依次坐入编号为 1 \sim N 的座位中;

  2. 每位 X 年级同学记住自己前一位 X 年级同学的位置,最后一位 X 年级的同学作为 X 年级链表的头;

这样就形成了一个单向链表。

比如,假设有如下几位学号的同学依次落座:2 3 5 11 23 42 83,他们的座位号分别是:1 2 3 4 5 6 7

1 年级链表头在 4 号位置,该年级链表从头到尾有: 11

2 年级链表头在 6 号位置,该年级链表从头到尾有: 42 2

3 年级链表头在 7 号位置,该年级链表从头到尾有: 83 23 3

5 年级链表头在 3 号位置,该年级链表从头到尾有: 5

请编程模拟上述链表,并按年级从低到高的顺序,输出每个年级链表上从链表头到链表尾所有同学的学号(如果某个年级的同学从来没有来过,该年级不需要输出)。

输入格式

1 行读入 N

接下来 N 行每行有互不相等的整数 A_i,代表同学的学号。

输出格式

按照年级从低到高输出若干行;

对于每个年级的链表,先输出年级编号,再换行输出某个年级从链表头到链表尾每个同学的学号。

输入输出样例

输入 #1
7
2 3 5 11 23 42 83
输出 #1
1
11
2
42 2
3
83 23 3
5
5
C++ 编辑器
输入
输出