求解下面的问题,用c语言编程,求大神,,,
2个回答
展开全部
那我就说下思路好了。
数据规模没那么大,最直观的方法就是建立双向循环链表来模拟。
每个结点里包含应聘者id,指向前一个应聘者的指针,和后一个应聘者的指针
且链表首位相连形成环状。
循环n次,每次将新产生的结点(填入相应应聘者id)插入正当的位置。
所谓正当的位置就是指从上一个插入的结点向后遍历m个结点的位置。
直到n次循环结束,从最后插入的这个当前结点开始向前遍历并输出结点中保存的应聘者id即可,直到n个应聘者id都被输出为止。
双向循环链表的构建是数据结构基础就不需要说明了吧。。
数据规模没那么大,最直观的方法就是建立双向循环链表来模拟。
每个结点里包含应聘者id,指向前一个应聘者的指针,和后一个应聘者的指针
且链表首位相连形成环状。
循环n次,每次将新产生的结点(填入相应应聘者id)插入正当的位置。
所谓正当的位置就是指从上一个插入的结点向后遍历m个结点的位置。
直到n次循环结束,从最后插入的这个当前结点开始向前遍历并输出结点中保存的应聘者id即可,直到n个应聘者id都被输出为止。
双向循环链表的构建是数据结构基础就不需要说明了吧。。
更多追问追答
追问
单向的行不,,,,如果规模的大话,应该用什么???
追答
因为你题目要求的是逆时针坐顺时针面试,所以双向的很方便。
规模大的话可能有数学方法,不过没仔细研究过。。
你这个题目给了规模所以不用考虑那么多,
真有兴趣就像楼上说的把约瑟夫问题好好看看。
约瑟夫问题有数学解法,但你这道题属于约瑟夫问题的变种需要具体分析。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询