文档介绍:石家庄铁道大学实验报告算法与数据结构1/5实验报告实验名称:线性表的应用日期:年月日姓名:朱慧敏学号:20132952班级:信1305指导教师:郭芳1、预习内容《数据结构(C语言版)》第2章2、,其中以熟悉各种链表的操作为侧重点。。3、实验内容(一)约瑟夫(Joeph)问题代码:#include<iostream>#include""#include""usingnamespacestd;//,结点类型和指针类型typedefstructLNode//定义结构体,{intnum,pwd;//num用来存储人的序号,pwd用来存储人的密码structLNode*next;};structLNode*head,*p,*pt;//定义结点//2、创建循环链表函数intcreatLinkList(intn)//参数n传递人数,{inti;head=(structLNode*)malloc(sizeof(structLNode));//创建一个带头结点的链表if(!head){return0;}//创建不成功,返回p=head;石家庄铁道大学实验报告算法与数据结构2/5for(i=1;i<n;i++){pt=(structLNode*)malloc(sizeof(structLNode));if(!pt){return0;}p->next=pt;p=pt;}p->next=head;//构成循环链表pt=head;return0;}//(intn)//参数n传递人数{inti,j;cout<<"请输入密码:"<<endl;for(i=1;i<=n;i++){cin>>j;pt->num=i;//num存储人的序号pt->pwd=j;//pwd存储人的密码pt=pt->next;}pt=p;returnj;}//4、创建输出函数intoutList(intm,intn)//参数m、n传递报数上限值和人数{inti,a;for(i=1;i<=n;i++)//用一个for循环搜索循环链表{for(a=1;a<m;a++)//删除结点{pt=pt->next;}p=pt->next;m=p->pwd;cout<<p->num<<"";//输出人的序号pt->next=p->next;石家庄铁道大学实验报告算法与数据结构3/5free(p);//释放动态申请的结点空间}return0;}//主函数voidmain(){intm,n;//m为报数上限值,n为人数cout<<"请输入报数上限值m和人数n:"<<endl;cin>>m>>n;creatLinkList(n);//调用创建链表函数enterPwd(n);//调用输入密码函数cout<<"出队的人依次是;"<<endl;outList(m,n);//调用输出链表函数}(二)教材中的算法设计题第二章第二题算法:代码:#include<iostream>#include<>usingnamespacestd;classLinkList{private:intnum;LinkList*next;public:friendLink