// 用单链表模拟实现约瑟夫环 void JosephCircle(PNode* ppHead, size_t M)
{
PNode car =NULL;
PNode Del =NULL;
int num = M;
assert(ppHead);
car = (*ppHead);
if(M !=1)
{
while (car->_pNext != car)
{
num = M;
while (--num >1)
{
car = car->_pNext;
}
Del = car->_pNext;
car->_pNext = Del->_pNext;
car = car->_pNext;
free(Del);
}
car->_pNext =NULL;
(*ppHead) = car;
}
elseif (M ==1)
{
PNode pre = (*ppHead);
while (car->_pNext != pre)
{
Del = car;
car = Del->_pNext;
free(Del);
}
car->_pNext =NULL;
}
(*ppHead) = car;
}