1
0
mirror of https://github.com/renbaoshuo/202401-programming-assignments.git synced 2024-12-16 15:44:39 +00:00
202401-programming-assignments/【实践课外】16.结构体2/7-8 双链表.md

66 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 7-8 双链表
实现一个双链表,双链表初始为空,支持 5 种操作:
1.在最左侧插入一个数;
2.在最右侧插入一个数;
3.将第 k 个插入的数删除;
4.在第 k 个插入的数左侧插入一个数;
5.在第 k 个插入的数右侧插入一个数
现在要对该链表进行 M 次操作,进行完所有操作后,从左到右输出整个链表。
注意:题目中第 k 个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2 个插入的数,…第 n 个插入的数。
### 输入格式:
第一行包含整数 M表示操作次数。
接下来 M 行,每行包含一个操作命令,操作命令可能为以下几种:
1.L x表示在链表的最左端插入数 x。
2.R x表示在链表的最右端插入数 x。
3.D k表示将第 k 个插入的数删除。
4.IL k x表示在第 k 个插入的数左侧插入一个数。
5.IR k x表示在第 k 个插入的数右侧插入一个数。
### 输出格式:
共一行,将整个链表从左到右输出。
### 数据范围:
$$1≤M≤100000 $$
所有操作保证合法。
### 输入样例:
在这里给出一组输入。例如:
```in
10
R 7
D 1
L 3
IL 2 10
D 3
IL 2 7
L 8
R 9
IL 4 7
IR 2 2
```
### 输出样例:
在这里给出相应的输出。例如:
```out
8 7 7 3 2 9
```