約瑟夫問題 迴圈單鏈表解法

2021-07-25 14:41:24 字數 1863 閱讀 1982

m_prear  是指向單鏈表的尾部的指標。m_prear  ->m_next 是指向頭指標。

函式ysf就是對約瑟夫問題的求解方法函式。

#includeusing namespace std;

#include "stdlib.h"

#define n 13

template class node

~node()

typename m_node;

node * m_next;

protected:

private: };

template class circlelist

~circlelist()

void ysf(int in,int index);

private:

node* m_prear;

int m_isize;

};//定義引數 返回值 類的例項化 ::成員函式

template void circlelist:: ysf(int in,int index)

else

} m_prear=null;

}template void circlelist:: dellist(int index)

if (m_prear==p)

m_isize--;

/*if (m_prear!=null)

*/ }//定義引數 返回值 類的例項化 ::成員函式

template void circlelist::addtail(nodeelement)

*/ padd->m_next=p->m_next;

m_prear->m_next=padd;

m_prear=padd;

m_isize++;

cout<< "rearadd :"ipos++;

p=p->m_next;

} p->m_next=m_prear;

m_isize++;

}//定義引數 返回值 類的例項化 ::成員函式

template void circlelist:: showlist()

coutcoutas.m_node=3;

nodeas1;

as1.m_node=4;

nodeas2;

as2.m_node=5;

nodeas3;

as3.m_node=6;

nodeas4;

as4.m_node=7;

circlelistawe;

awe.addtail(as);

awe.addtail(as1);

awe.addtail(as2);

awe.addtail(as3);

awe.addtail(as4);

awe.showlist();

for (;awe.getsize()>0;)

cout<<"約瑟夫問題迴圈鍊錶解法"for (int j=0;jas;

as.m_node=3;

nodeas1;

as1.m_node=4;

nodeas2;

as2.m_node=5;

nodeas3;

as3.m_node=6;

nodeas4;

as4.m_node=7;

circlelistawe;

awe.addtail(as);

awe.addtail(as1);

awe.addtail(as2);

awe.addtail(as3);

awe.addtail(as4);

awe.showlist();

cout<<"*******add finish*********"<

運用迴圈單鏈表解決約瑟夫環問題

include using namespace std struct node 構造結點 為結點初始化 分配空間 int data node next class josephus void create 鍊錶的初始化 void output 輸出數值 private node head 迴圈鍊錶的...

用迴圈單鏈表解決約瑟夫(Joseph)問題

用迴圈單鏈表解決約瑟夫 joseph 問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該...

用迴圈單鏈表解決約瑟夫(Joseph)問題

據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下乙個重新報數,直到所...