用单链表解决约瑟夫问题。约瑟夫问题为:n个人围成一圈,从某个人开始报数1,2,…,m,数到m的人出圈,然后从出圈的下一个人(m+1)开始重复此过程,直到全部人出圈,于是得到一个新的序列,如当n=8,m=4时,若从第一个位置数起,则所得到的新的序列为4,8,5,2,1,3,7,6。 算法实现的思路为:n个人用1,2,…,n进行编号,使用不带头结点的单链表来存储,报数从1号开始,若某个人出圈,则将其打印输出,并将该结点删除,再对剩余的n-1个人重复同样的过程,直到链表中只剩下一个结点,将其输出即可。算法的具体实现如下: