链表操作
测试数据来自 system/1550
作业已超过截止时间,您无法递交本题目。
时间限制:1秒 内存限制:256M
【问题描述】
给定一个含 \(n\) 个结点的链表。现在有 \(m\) 个操作,操作分为下面几类:
\(1\ i\):询问链表中第 \(i\) 个元素的值,保证 \(i\) 小于等于当前序列长度。
\(2\ x\):询问 \(v\) 在链表中是第几个元素(最靠前的),如果找不到,输出"not found!"。
\(3\ i\ x\):在链表的第 \(i\) 个元素前插入一个元素 \(x\),保证 \(1≤i≤n+1\)( \(n\) 表示当前序列的长度,如果 \(i=n+1\),表示在表尾加入 \(x\))。
\(4\ i\):删除链表中第 \(i\) 个元素,保证 \(1≤i≤n\)( \(n\) 表示当前序列的长度)。
【输入格式】
第 1 行包含两个整数:\(n,m\) ,分别表示最初的链表最初长度和后面要操作数。
第 2 行包含 \(n\) 个整数,表示链表从从头到尾的每个结点的值。
接下来的 \(m\) 行,每行表示题目所述的 4 类操作之一。
【输出格式】
按输入顺序输出操作 1 和 2 的结果。
【输入输出样例】
Input
5 11
8 88 888 8888 88888
1 3
2 8888
3 1 18
3 7 99
3 5 58
4 2
1 2
2 58
2 1888
4 3
1 4
Output
888
4
88
4
not found!
8888
【数据说明】
对于 \(100\%\) 的数据满足,\(n,m≤1000\),元素值在 int 范围内。
【来源】
Mr.he