C++ 逢三出局游戏:循环链表实现
#include <bits/stdc++.h> using namespace std; // 引入标准库头文件
struct people { string name; struct people *next; }; // 定义人员结构体
int main() { // 创建11个人员 struct people p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11; // 为每个人员赋予名字 p1.name='赵'; p1.next=&p2; p2.name='钱'; p2.next=&p3; p3.name='孙'; p3.next=&p4; p4.name='李'; p4.next=&p5; p5.name='周'; p5.next=&p6; p6.name='吴'; p6.next=&p7; p7.name='郑'; p7.next=&p8; p8.name='王'; p8.next=&p9; p9.name='刘'; p9.next=&p10; p10.name='关'; p10.next=&p11; p11.name='张'; p11.next=&p1; // 将人员连成环形链表
struct people *p=&p1,*pre=&p11;
// 初始化指针p和pre,指向第一个人员和最后一个人员
int outNum=0,count=0;
// 初始化出局人数和计数器
while(outNum<11)
{
count++;
// 计数器加1
if(count==3)
{
cout<<p->name<<',';
// 输出出局人员的名字
pre->next=p->next;
p->next=NULL;
// 将出局人员从链表中删除
p=pre->next;
// 指针p指向下一个人员
count=0;
// 重置计数器
outNum++;
// 出局人数加1
}
else
{
p=p->next;
pre=pre->next;
// 指针p和pre都指向下一个人员
}
}
return 0;
} // 程序结束
原文地址: https://www.cveoy.top/t/topic/nxUl 著作权归作者所有。请勿转载和采集!