链表大家都熟悉, 或用数组或用指针表示, 思想都很简单, 大家都很明白
双向链表, 这个大家也熟悉, 有没有想过用数组如何表示双向链表, 以及如 插入和删除其中一个元素, 这里简单一点, int类型的数组吧
下面有个题目, 本来是想写怎么解这个问题的, 偷懒了, 留给大家了, 我只点下。
===================================================
你有一些小球, 从左到右依次编号1,2,3,到n,下面有两种指令,
A X Y表示把X移动到Y的左边,
B X Y表示把X移动到Y的右边。
输入小球个数n, 指令条数M条, 从左到右输出最后的序列。
注意, n可能高达500000, m可能高达100000
样例输入:
6 2
A 1 4
B 3 5
样例输出
2 1 4 5 3 6
===================================================
有人对此第一反应是指针链表就可以了, 很简单, 也有人对此第一反应是数组就好了, 虽然麻烦点其实也挺简单的。
但, 有没有乐意去尝试下前面我提到的呢??
答案我有, 但我暂时就不贴出来了。