[问题描述]
有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。
排长是不愿意去的,假设排长为1号,请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。
[基本要求]
至少采用两种不同的数据结构的方法实现。
```cpp
#include<iostream>
#include<string.h>
using namespace std;
typedef struct LNode
{
bool x;
int num;
struct LNode *next;
}LNode,*LinkList;
void InitList(LinkList &L)
{
L = new LNode;
L->next = NULL;
}
void CreatList(LinkList &L,int n)
{
L->x = false;
L