日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

约瑟夫问题_笔记

發布時間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 约瑟夫问题_笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

此時m=8,n=3,每次數3次就將那個數進行輸出,輸出后的數將會被釋放

  • 123輸出3
  • 456輸出6
  • 781輸出1
  • 245輸出5
  • 782輸出2
  • 478輸出8
  • 474輸出4
  • 777輸出7
  • 需要添加循環鏈表類,筆記里有!
    main.cpp

    #include"List.h"#define M 8 #define N 3typedef struct MYNUM {CircleLinkNode* node;int val; }MyNum;void Myprint(CircleLinkNode* data) {MyNum * num = (MyNum*)data;cout << num->val << " " ;} bool MyCompare(CircleLinkNode* data1, CircleLinkNode* data2) {MyNum* num1 = (MyNum*)data1;MyNum* num2 = (MyNum*)data2;if (num1->val == num2->val){return true;}return false; }int main() {List* l = new List();MyNum num[M];for (size_t i = 0; i < 8; i++){num[i].val = i + 1;l->Insert_CircleLinkList(l->linklist,i,(CircleLinkNode*)&num[i]);}//打印l->Print_CircleLinkList(l->linklist,Myprint);cout << endl;int index = 1;//輔助指針CircleLinkNode* pCurrent = l->linklist->head.next;while (l->Size_CircleLinkList(l->linklist) > 1){if (index == N){MyNum* temNum = (MyNum*)pCurrent;cout << temNum->val << " ";//保存待刪除節點的下一個節點CircleLinkNode* pNext = pCurrent->next;//根據值刪除l->RemoveByValue_CircleLinkList(l->linklist,pCurrent,MyCompare);pCurrent = pNext;if (pCurrent == &(l->linklist->head)){pCurrent = pCurrent->next;}index = 1;}pCurrent = pCurrent->next;if (pCurrent == &(l->linklist->head)){pCurrent = pCurrent->next;}index++;}if (l->Size_CircleLinkList(l->linklist) ==1){MyNum* tempNum = (MyNum*)l->Front_CircleLinkList(l->linklist);cout << tempNum->val;}else{cout << "出錯!" << endl;}return 0; }

    總結

    以上是生活随笔為你收集整理的约瑟夫问题_笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。