用java语言编写单循环链表约瑟夫生死游戏
1个回答
展开全部
LinkList p;; /link,int k;*循环地删除队列结点*,m为出列者喊到的数
{
/
}
p-;n最后被删除的元素是;
for(int i=0;data);link;
for(i=0;*使链表循环起来*,int m) /m-1,P-;
p=p-;;i++)
{
p=(LinkList)malloc(sizeof(LNode)); /link,p-;ilt;
}
r-;n为总人数;link;
p=p-;;
p=list;
p=r-;
}
,k为第一个开始报数的人;i++)
{
r=p;* p为当前结点 r为辅助结点;
⒊不断地从链表中删除链结点;
else
r-;link=p;
free(p),r;
p-;data);,无头结点的循环链表;*建立循环链表*:%4dquot;ilt;*使p指向头节点*!=p)
{
for(i=0; /n:%4d link=p-;data=i;
if(list==NULL)
list=p;
printf(ilt;k;
}
printf(
r=p;link=list。
void JOSEPHUS(int n;*把当前指针移动到第一个报数的人*/
/i++)
{
r=p,指向p的前驱结点 list为头节点*/link解决问题的核心步骤,list:(程序的基本算法)
⒈建立一个具有n个链结点;
⒉确定第1个报数人的位置;
while(p-,直到链表为空;被删除的元素
{
/
}
p-;n最后被删除的元素是;
for(int i=0;data);link;
for(i=0;*使链表循环起来*,int m) /m-1,P-;
p=p-;;i++)
{
p=(LinkList)malloc(sizeof(LNode)); /link,p-;ilt;
}
r-;n为总人数;link;
p=p-;;
p=list;
p=r-;
}
,k为第一个开始报数的人;i++)
{
r=p;* p为当前结点 r为辅助结点;
⒊不断地从链表中删除链结点;
else
r-;link=p;
free(p),r;
p-;data);,无头结点的循环链表;*建立循环链表*:%4dquot;ilt;*使p指向头节点*!=p)
{
for(i=0; /n:%4d link=p-;data=i;
if(list==NULL)
list=p;
printf(ilt;k;
}
printf(
r=p;link=list。
void JOSEPHUS(int n;*把当前指针移动到第一个报数的人*/
/i++)
{
r=p,指向p的前驱结点 list为头节点*/link解决问题的核心步骤,list:(程序的基本算法)
⒈建立一个具有n个链结点;
⒉确定第1个报数人的位置;
while(p-,直到链表为空;被删除的元素
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询