欢迎来到天天文库
浏览记录
ID:59135891
大小:11.04 KB
页数:4页
时间:2020-09-12
《约瑟夫环_单循环链表.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include"iostream"usingnamespacestd;classJosephCircle{public:JosephCircle(intTotal,intMultiple);~JosephCircle();//释放内存voidProdecuCircle();voidPrintCircle();private:typedefstructCircle{intNo;structCircle*Next;}JosCir,*PJosCir;PJosCirL;//指向第一个结点intTotal;//环的总人数intMultiple;//按什
2、么倍数来};JosephCircle::JosephCircle(intTotal=41,intMultiple=3){this->Total=Total;this->Multiple=Multiple;L=newJosCir;//创造头结点,不是第一个结点,头结点不存数}JosephCircle::~JosephCircle(){PJosCirtemp;for(;L!=L->Next;){temp=L;L=L->Next;deletetemp;}deleteL;//最后一个结点}voidJosephCircle::ProdecuCircle(
3、){PJosCirtemp=L,head;for(inti=1;i<=Total;i++)//尾插{head=newJosCir;if(head==NULL){exit(-1);}head->No=i;temp->Next=head;temp=head;}head->Next=L->Next;//尾结点连接到第一个结点deleteL;//头结点可以释放了L=head->Next;//L指向第一个结点}voidJosephCircle::PrintCircle(){PJosCirtemp;while(L->Next!=L){for(inti=1;
4、iNext;}cout<Next->No<<"-->";temp=L->Next;L->Next=L->Next->Next;//连接起来L=L->Next;//从下一位开始deletetemp;}cout<No<<"";}intmain(){intTotal,Multiple;cout<<"请输入约瑟夫环人数:";cin>>Total;cout<<"请输入约瑟夫环规则倍数:";cin>>Multiple;JosephCircleCircle(
5、Total,Multiple);Circle.ProdecuCircle();Circle.PrintCircle();return0;}
此文档下载收益归作者所有