标签:数据结构单链表
node* JosephCircle_OP(node*& phead, size_t del) //约瑟夫环 优化写法
{
assert(phead);
node* cur = phead, *prev = phead;
if(!del) //对参数判断
{
printf("error parameter!");
}
while(cur->next != cur)
{
for(int i=1; i<del; i++) //先找到删除节点的上一个节点//因为自己占一个节点,所以再减1
{
prev = cur;
cur = cur->next;
}
if(del!=1)
{
prev->next = cur->next;
free(cur);
}
else//删除不为1的情况
{
node* tmp = cur;
cur = cur->next;
free(tmp);
}
}
return cur;
}
标签:数据结构单链表
原文地址:http://10767544.blog.51cto.com/10757544/1717969