随笔-167  评论-8  文章-0  trackbacks-0

 

#include <iostream>

typedef 
struct LNode 
{
    
int data;
    
struct LNode *link;
}
LNode, *LinkList;

void JosePhus(int n, int k, int m)
{
    LinkList p,r,curr;
    
    p
=(LNode*)malloc(sizeof(LNode));
    p
->data=1;
    p
->link=p;
    curr
=p;
    
    
for (int i=2;i<n+1;i++)
    
{
        LNode 
*t=(LNode*)malloc(sizeof(LNode));
        t
->data=i;
        t
->link=curr->link;
        curr
->link=t;
        curr
=t;
    }

    
    
while (--k)
    
{
        p
=p->link;
    }

    
while (n--)
    
{
        
for (int i=m;--i;r=p,p=p->link);
        
        r
->link=p->link;
        printf(
"%d->",p->data);
        free(p);
        p
=r->link;
    }

}


int main(int argc, char* argv[])
{
    printf(
"Hello World!\n");
    JosePhus(
13,4,2);
    
return 0;
}

posted on 2009-07-19 11:34 老马驿站 阅读(100) 评论(0)  编辑 收藏 引用 所属分类: c++