约瑟夫环 单向循环链表实现
生活随笔
收集整理的這篇文章主要介紹了
约瑟夫环 单向循环链表实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
約瑟夫環 已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重復下去,直到圓桌周圍的人全部出列。
///循環鏈表實現 #include<bits/stdc++.h> using namespace std; typedef struct List {int data;struct List *next; } node; int main() {node *head,*r,*s;head = new node;///帶來頭結點,不過后面會去掉r =head;int n,i;int k;cin>>n>>k;///建立循環鏈表for(i = 1; i<=n; i++){s = new node;s->data = i;r->next = s;r= s;}r->next =head->next;///為節點指向頭結點的下一個有數據的結點node *p,*p1;p = head->next;///去掉頭結點delete head;while(p->next != p)///當鏈表中只有一個結點時停止 {for(i = 1; i<k-1; i++)///遍歷到第k個時停止 {p = p->next;}p1=p->next;///刪除該結點p->next = p->next->next;delete p1;p = p->next;}cout<<p->data<<endl;delete p;return 0; }?
轉載于:https://www.cnblogs.com/tp25959/p/10254101.html
總結
以上是生活随笔為你收集整理的约瑟夫环 单向循环链表实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python gif动态图的合成
- 下一篇: 面向对象网络编程基础 property