最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++循環(huán)鏈表之約瑟夫環(huán)的實現(xiàn)方法

 更新時間:2014年09月02日 16:00:27   投稿:shichen2014  
這篇文章主要介紹了C++循環(huán)鏈表之約瑟夫環(huán)的實現(xiàn)方法,對于學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法有一定的借鑒價值,需要的朋友可以參考下

本文實例形式展示了C++實現(xiàn)循環(huán)鏈表中約瑟夫環(huán)的方法,分享給大家供大家參考之用。具體方法如下:

主要功能代碼如下:

#include <iostream>
using namespace std;

typedef struct student
{
 int data;
 struct student* next;
}node,*LinkList;
//約瑟夫環(huán)
void printfList(LinkList head){

 LinkList p=head;
 if (head!=NULL)
 {

 do{
  cout<<p->data<<" ";
  p=p->next;
 }while(p!=head);//這里出現(xiàn)過問題,用do-while
 cout<<endl;
 }
}
void Josephus(int n,int k,int m){
 int i=2;
 LinkList head=(LinkList)malloc(sizeof(node));
 head->next=head;
 head->data=1;
 LinkList pre=head;
 while(i<=n){
   LinkList p=(LinkList)malloc(sizeof(node));
 p->data=i;
 p->next=pre->next;
 pre->next=p;
 pre=p;
 i++;
 }
 printfList(head);

 LinkList mend=pre;
 int kk=0;
 while(kk!=k){
 mend=mend->next;
 ++kk;
 }//找到k個開始
 
 while(n--){//要全部輸出
 int mm=1;
 pre=mend;//每次都要給pre從新復(fù)值否則程序錯誤
 while(mm!=m){//不是要求的數(shù),指針每次往前推一步,mend指向報數(shù)的人,pre指向前一個
  pre=mend;
  mend=mend->next;
  mm++;
 }
 pre->next=mend->next;//前一個鏈到下一個準備報數(shù)的
 cout<<mend->data<<endl;
 LinkList deletem=mend;
 mend=pre->next;//mend指向報數(shù)的人;
 free(deletem); //最后刪除 
 }
}
int main(){
 Josephus(13,4,1);
 return 0;
}

希望本文所述對大家的C++程序設(shè)計有所幫助。

相關(guān)文章

  • C++11中強類型枚舉的使用

    C++11中強類型枚舉的使用

    本文主要介紹了C++11中強類型枚舉的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • C/C++ 編譯器優(yōu)化介紹

    C/C++ 編譯器優(yōu)化介紹

    這篇文章主要涉及了C/C++ 編譯器優(yōu)化的簡單介紹,具有一定參考價值。如有不對之處,歡迎指出。
    2017-09-09
  • 詳細對比C語言中的chmod()函數(shù)和fchmod()函數(shù)

    詳細對比C語言中的chmod()函數(shù)和fchmod()函數(shù)

    這篇文章主要介紹了C語言中的chmod()函數(shù)和fchmod()函數(shù)的詳細對比,兩個都是用于修改文件權(quán)限但是請注意實際使用上的差異,需要的朋友可以參考下
    2015-09-09
  • c++代碼實現(xiàn)tea加密算法的實例詳解

    c++代碼實現(xiàn)tea加密算法的實例詳解

    這篇文章主要介紹了c++代碼實現(xiàn)tea加密算法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • C++ 中const修飾虛函數(shù)實例詳解

    C++ 中const修飾虛函數(shù)實例詳解

    這篇文章主要介紹了C++ 中const修飾虛函數(shù)實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • QT線程QThread的使用介紹

    QT線程QThread的使用介紹

    在進行桌面應(yīng)用程序開發(fā)的時候,假設(shè)程序在某些情況要處理復(fù)雜邏輯, 如果一個線程去處理,就會導(dǎo)致窗口卡頓,無法處理用戶操作。這就需要使用多線程,其中一個線程處理窗口事件,其他線程進行邏輯運算,多個線程各司其職,不僅可以提高用戶體驗還可以提升程序的執(zhí)行效率
    2022-09-09
  • C語言快速掌握位段使用

    C語言快速掌握位段使用

    位段位段的聲明和結(jié)構(gòu)是類似的,但是也會有所不同,此篇文章將帶你了解位段是什么已以及位段的使用和位段的特性,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-09-09
  • 匯編語言rep movsd 的使用詳解

    匯編語言rep movsd 的使用詳解

    rep movsd 每次ecx!=0便執(zhí)行movsd ,然后ecx=ecx-1 movsd移動ds:[si] 到es:[di],在32位匯編下可以用esi代替si,edi代替di
    2013-09-09
  • C語言超詳細講解線性表

    C語言超詳細講解線性表

    線性表,數(shù)據(jù)結(jié)構(gòu)中最簡單的一種存儲結(jié)構(gòu),專門用于存儲邏輯關(guān)系為"一對一"的數(shù)據(jù)。線性表是基于數(shù)據(jù)在實際物理空間中的存儲狀態(tài),又可細分為順序表(順序存儲結(jié)構(gòu))和鏈表
    2022-07-07
  • C語言詳解如何實現(xiàn)帶頭雙向循環(huán)鏈表

    C語言詳解如何實現(xiàn)帶頭雙向循環(huán)鏈表

    帶頭雙向循環(huán)鏈表:結(jié)構(gòu)最復(fù)雜,一般用在單獨存儲數(shù)據(jù)。實際中使用的鏈表數(shù)據(jù)結(jié)構(gòu),都是帶頭雙向循環(huán)鏈表。另外這個結(jié)構(gòu)雖然結(jié)構(gòu)復(fù)雜,但是使用代碼實現(xiàn)以后會發(fā)現(xiàn)結(jié)構(gòu)會帶來很多優(yōu)勢,實現(xiàn)反而簡單
    2022-04-04

最新評論

桑日县| 冀州市| 民乐县| 三门峡市| 武威市| 和林格尔县| 红河县| 安达市| 武鸣县| 沙雅县| 永昌县| 固安县| 女性| 台北市| 河曲县| 邮箱| 文水县| 博野县| 台南县| 汉沽区| 佛冈县| 泰顺县| 苏州市| 文水县| 班戈县| 吴川市| 神池县| 肇庆市| 西乌珠穆沁旗| 株洲市| 突泉县| 疏勒县| 汤阴县| 建德市| 怀来县| 安丘市| 平顺县| 太和县| 新疆| 麻城市| 伊宁县|