欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

課程設(shè)計---約瑟夫環(huán)

系統(tǒng) 1889 0
題目:約瑟夫環(huán)

【問題描述】
約瑟夫(Joseph)問題的一種描述是:編號為1,2,.....,n的n個人按順時針方向圍坐一圈,每人持有一個密碼(正整數(shù))。一開始任選一個正整數(shù)作為報數(shù)上限值m,從第一個人開始順時針方向自1開始報數(shù),報到m時停止報數(shù)。報m的人出列,將他的密碼作為新的m值,從他的順時針方向上的下一個人開始重新從1報數(shù),如此下去,直至所有的人都出列為止。試設(shè)計一個程序求出列順序。

【其本要求】
利用單向循環(huán)鏈表存儲結(jié)構(gòu)模擬此過程,按照出列的順序印出各人的編號。

【測試數(shù)據(jù)】
M的初值為20;n=7,7個人密碼依次為:3,1,7,2,4,8,4,首先m的值為6(正確的出列順序應(yīng)為6,1,4,7,2,3,5)。

    #include "iostream"
using namespace std;

typedef struct LNode
{
	int num;   //表示該元素的編號
	int password;   //表示該元素的密碼
	struct LNode *next;

}LNode,*LinkList;   // 結(jié)點(diǎn)類型,指針類型

int Insert(LinkList &L,int password, int num)  //引用類型的參數(shù)
{
	LinkList p;
	if(L==NULL)   //第一個結(jié)點(diǎn)
	{
		p=(LinkList)malloc(sizeof(LNode));
		if(!p)
		{
			cout<<"分配空間失敗!"<<endl;
			return -1;
		}
		p->num=num;
		p->password=password;
		L=p;
	}
	else
	{
		p=(LinkList)malloc(sizeof(LNode));
		if(!p)
		{
			cout<<"分配空間失敗!"<<endl;
			return -1;
		}
		p->num=num;
		p->password=password;
		L->next=p;
		p->next=NULL;
		L=p;
	}
	return 0;
}
void Joseph(LinkList &L,int k,int m)  //引用類型的參數(shù)
{
	int i;
	LinkList p,q;
	p=q=L;
	while(q->next!=L)
		q=q->next;
	while(k>0)
	{
		for(i=1;i<m;i++)
		{
			q=q->next;
			p=p->next;
		}
		q->next=p->next;
		cout<<p->num<<"  ";
		m=p->password;  //更新m的值
		free(p);
		k--;    //人數(shù)減1
		p=q->next;
	}
	cout<<endl;
}
int main(void)
{
	int m,n,i,t;
	LinkList head,p=NULL;
	cout<<"請輸入人數(shù):";         //輸入人數(shù)n
	cin>>n;
	cout<<"請輸入初始密碼:";     //輸入初始密碼m
	cin>>m;
	cout<<"請輸入大家手中的密碼:"<<endl;
	for(i=1;i<=n;i++)
	{
		cin>>t;
		if(Insert(p,t,i)==-1)
			return 0;
		if(i==1)
			head=p;
	}
	p->next=head;  //構(gòu)成約瑟夫環(huán)
	cout<<"出列的順序如下:"<<endl;
	Joseph(head,n,m);
	system("pause");
	return 0;
}
  

運(yùn)行結(jié)果如下圖:

課程設(shè)計---約瑟夫環(huán)

結(jié)構(gòu)體定義中

    typedef struct LNode
{
	int num;   
	int password;  
	struct LNode *next;
}LNode,*LinkList;   // 結(jié)點(diǎn)類型,指針類型
  

typedef 聲明,簡稱 typedef,為現(xiàn)有類型創(chuàng)建一個新的名字。
typedef struct Node
{
int data;
struct Node* next;
}LNode, *LinkList;
LNode就相當(dāng)于struct Node ,起了一個別名。
*LinkList也相當(dāng)于struct Node


也就是:

LNode 等價 struct Node
LinkList 等價 LNode* 等價 struct Node*

LNode a;等價 struct Node a;
LinkList p;等價 LNode* p;等價 struct Node* p;

課程設(shè)計---約瑟夫環(huán)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美污污网站 | 国产伦精品一区二区三区精品视频 | 天天拍天天色 | 久久久久久国产精品免费免费狐狸 | 成人一区二区三区在线 | 欧美亚洲香蕉 | 国变精品美女久久久久av爽 | 久草免费电影 | 男女视频在线免费观看 | 日本一本久草 | 国产99精品一区二区三区免费 | 久久伊人色 | 日日摸夜夜摸狠狠摸日日碰夜夜做 | 亚洲欧美久久婷婷爱综合一区天堂 | 欧美视频在线播放 | 国产高清精品在线 | 浮力影院草草影院 | 电影长安道无删减免费看 | 久久久999精品视频 日本高清不卡在线 | 亚洲一区二区三区免费视频 | 欧美欧美欧美欧美 | 国产精品v欧美精品v日韩精品 | 91麻豆国产极品在线观看洋子 | 色久在线 | 2021国产精品自产拍在线观看 | 香蕉草草久在视频在线播放 | v片在线免费观看 | 久久久久久天天夜夜天天 | 日韩精品成人a在线观看 | 欧美8一10sex性hd | 亚洲综合亚洲国产尤物 | 女人a级毛片19毛水真多 | 免费欧美 | 亚洲国产日韩在线一区 | 草樱av | 欧美日韩国产一区二区三区伦 | 嫩草影院在线入口 | 五月综合激情婷婷六月色窝 | 三A级做爰片免费观看国产电影 | 欧美专区在线播放 | 国内自拍视频在线观看 |