拙劣之作,约瑟夫环循环链表解法

下学期的数据结构期末作业貌似要做这个,估计就是循环链表的模拟解法吧。。。
所以就凭着记忆写了一个比较简单的cpp版本。
大牛一笑哂之~

#include #include using namespace std; struct node{ int data; int index; node next,pre; }root,tail; void del(node* a) { node *p; p=a->pre; p->next=a->next; a->next->pre=p; coutindexdata=aas; aa->index=ind; aa->pre=tail; tail->next=aa; aa->next=root; tail=aa; root->pre=tail; } int main() { int i; int a; int n,m; m=4;n=6; cin>>m>>n; for(i=0;i>a; if(i){ add(a,i+1); }else{ root=new node; tail=root; root->data=a; root->index=i+1; root->next=tail; root->pre=tail; tail->next=root; tail->pre=root; } } node *tt; tt=root; while(n){ int kk=0; while(1) { kk++; if(kk==m) { m=tt->data; del(tt); tt=tt->next; break; }else { tt=tt->next; } } n--; } }