采用循环结构和链表物理结构。

采用循环结构是因为题目中的报数过程是循环进行的,每次从1号人开始报数,一直到m号人,然后又从下一个人开始报数,直到最终剩余p个人。

采用链表物理结构是因为在报数过程中,每次报到m的人都要离开环,这样会导致环的结构不断发生变化,如果使用数组等静态数据结构可能会涉及到频繁的数据搬移操作,而链表可以方便地进行节点的删除操作。

具体实现思路如下:

  1. 创建一个循环链表,循环链表中的每个节点表示一个人,初始时,循环链表中有n个节点,节点的编号从1到n。

  2. 从1号人开始,依次报数,每次报到m的人将其从链表中删除。

  3. 删除完一个人后,继续从下一个人开始报数,直到最终剩余p个人为止。

  4. 输出最终剩余的p个人的初始编号。

有n个人编号为1~n排成一个环从1号人开始从1到m报数报到m的人离开该环从下一个人开始继续从1到m报数报到m的人离开该环这样一直进行下去直到最终剩余p个人。从键盘输入n、m、p要求n=2、m=2、pn输出最终剩余的p个初始编号。采用何种逻辑结构及其理由?采用何种物理结构及其理由?

原文地址: https://www.cveoy.top/t/topic/hQ3P 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录