关于牛客小白月赛65 c 题排队问题

题目描述

关于牛客小白月赛65 c 题排队问题_第1张图片

第一步

思路通过维护两个数组来存储一个数组的前面第一位是谁以及后面第一位是谁也就是用两个数组来模拟一下双链表。

首先开两个数组一个是l[N]相当于当前位置前方第一个人是谁的第二个数组r[N]存储当前位置后方第一个是谁。

关于牛客小白月赛65 c 题排队问题_第2张图片

第二步

赋值题目中并没有特定要求因此我们可以直接按照数字顺序进行排序也就是第一个位置是1第二个是2以此类推,因此第i个数字的前方是i-1,后方第一个是i+1,因此赋值就可以用一个循环进行

关于牛客小白月赛65 c 题排队问题_第3张图片

第三步

进行接下来的操作当删去一个位置的数字时我们只需要让该数字左边的右边等于该数字的右边,让该数字右边的左边等于该数字的左边这样就相当于把该数字从队伍中删除其实也就是双链表中删除的操作,代码如下

关于牛客小白月赛65 c 题排队问题_第4张图片

第四步

输出:输出当前位置数字的前面第一个数字也就是输出该数字的左边那个数字也就是

关于牛客小白月赛65 c 题排队问题_第5张图片

你可能感兴趣的:(C语言,数据结构,c语言)