循环链表——跳海问题

题目:因为轮船要沉没,需要船员跳海保护轮船,船员围坐一圈,首先指出从第几号开始,顺序数七个人,被数到的人跳海,循环直到只剩一人。

思路:用循环链表。

结构体:

struct linklist{
    int data;
    struct linklist *next;
};    
typedef struct linklist * linknode;

创建循环链表:

linknode sub,temp;

linknode creat(int n){
    linknode L=new linklist;
    linknode last=L;
    L->next=NULL;
    for(int i=0;i<n;i++){
        linknode p=new linklist;
        p->data=i+1;
        last->next=p;
        last=p;
    }
    last->next=L->next;
    return L->next;
}

注意这道题目不能含有头指针,从第一个有效节点开始,其数据域为1!

选出跳海的人:

int left(linknode &S,int r,int n){
    linknode temp=S,q;
    for(int i=0;i<r-1;i++)
    temp=temp->next;  //从第r个开始
    while(n>1){
        for(int j=0;j<5;j++)       //删除从他之后第七个,先找到从他之后第六个
            temp=temp->next;
        q=temp->next;           
        temp->next=q->next;
        delete q;
        temp=temp->next;   
        n--;             
}
return temp->data;
}

主函数:

int main(){
linknode test=creat(4);
int theOne=left(test,1,4);
int a=theOne;
cout<<a<<endl;
}

时间: 2024-10-11 05:04:16

循环链表——跳海问题的相关文章

小猪的数据结构辅助教程——2.5 经典例子:约瑟夫问题的解决

小猪的数据结构辅助教程--2.5 经典例子:约瑟夫问题的解决 标签(空格分隔): 数据结构 约瑟夫问题的解析 关于问题的故事背景就不提了,我们直接说这个问题的内容吧: 一堆人,围成一个圈,然后规定一个数N,然后依次报数,当报数到N,这个人自杀,其他人鼓掌!啪啪啪, 接着又从1开始报数,报到N又自杀-以此类推,直到死剩最后一个人,那么游戏结束! 这就是问题,而我们用计算机模拟的话,用户输入:N(参与人数),M(第几个人死),结果返回最后一个人! 类似的问题有跳海问题,猴子选王等,下面我们就以N =

小猪的数据结构学习笔记(五)

小猪的数据结构学习笔记(五) 线性表之--循环链表                           --转载请注明出处:coder-pig 循环链表知识点归纳: 相关代码实现: ①判断是否为空表: ②单循环链表的存储结构 其实和单链表的结构是一样的! /*定义循环链表的存储结构*/ typedef struct Cir_List { int data; struct Cir_List *next; }Lnode; ③初始化循环单链表 代码如下: //1.循环链表的初始化 //表示一个元素,如

宋亡之后无中国,明亡之后无华夏——有多少人懂

一位西南联合大学的历史教授曾说过:中国史上到南宋灭亡就停止了,人们问他为何?    他说,“崖山之后,已无中国.”     有人说:唐宋在日本,明在韩国.大清在中国.    为什么? 因为<礼>曰:“华夏,重信义!! 而胡人,无!!” 今天的我们,绝对是炎黄的耻辱! 在骂日本人乱改教科书的时候,我们自己是不是也要扪心自问,远到甲申,近至文革,哪次我们好好反省过? 宋朝的灭亡,绝对不是简单意义上的改朝换代:而是中国第一次亡国.有兴趣的可以查‘崖山之后无中国’这句话,真是血泪斑斑的警句.   宋朝

拆掉思维里的墙——有感

近几天看了一本书<拆掉思维里的墙>,作者古典.感触颇深,冥冥之中明白了改变不了自己的不是行为,而是思想.你的思想决定了你的行动.因为你心中的那堵墙,使你看到与别人不同的世界,小编按照书中的目录顺序,阐述自己的想法. 假设:现在你有一笔足以在北京外环买一套100平居室的钱,你面临着两种选择: 拿着这笔钱,兴高采烈地买个小房.PS:从你现买的房子出发,每天要花2个多小时才能到你工作的地方. 去投资,去学习.PS:风险大,很可能赔了夫人又折兵. 选择有风险,执行需谨慎. 当你选择了在北京外环买房,买

元朝皇帝列表 元朝历代皇帝简介

元朝皇帝列表 元朝历代皇帝简介 元朝(公元1206年-1368年),始于太祖铁木真,终于元顺帝,共15帝.元朝是蒙古族的王朝,疆域宽广,但统治残暴,致使王朝短命. 元朝皇帝列表: 太祖铁木真(1162-1227)1206年称汗,在位22年 太祖铁木真,姓奇渥温,名铁木真,蒙古族人.1206年,被蒙古贵族推举为“成吉思汗”.之后进行大规模的侵略扩张,死于1227年,庙号太祖. 太宗窝阔台(1186-1241)1229年即位,在位13年 窝阔台,成吉思汗的第三子,成吉思汗死后,由其四子拖雷监国一年,

李阳疯狂英语也就那么回事

首先声明我不是李阳的钢粉,其实我感觉大师的秘密也就是那么回事.我是通过什么来分析李阳疯狂英语背后疯狂的秘密呢?其实我是通过百度,我搜索了"李阳"的关键词指数,1671人次/天,同时"李阳疯狂英语"这个词1139人次/天,对于站长可以很明白里面的含义,我们可以利用"李阳"的相关评论性文章或长尾词文章来进行宣传推广引流到我们的网站,因为竞争并不是很激烈. 言 归 正传,为什么李阳这么疯狂呢?古语有云:言之无文行之不远.我们要解剖里面的秘密.那我们应该

【转型】毛大庆:不是房地产不行,而是经营方式不行了

?[转型]毛大庆:不是房地产不行,而是经营方式不行了 毛大庆最近的一次演讲,有很多精彩的观点,1,如何以过程来论人生?2,追求财务时间心灵三大自由的前提是什么?3,老龄化时代来临后中国的希望在哪里?4,创业后能更加更好的理解王石,5,自己已经很难创业,而是帮助创业者创业,6,不是房地产不行了,而是原来的经营方式不行了.7,要记住,星级酒店哪栋楼都不是香格里拉的,但是它的服务是能够挣钱能够存在的,以此来想想未来的房地产模式. 一.毛大庆:我为什么要创业? 1,以过程来论人生 第一个原因是我觉得我的

网评里的泡沫

看一些人评论转基因的事,被一片文章误导大说转基因好,跟的人很多.出来理事的反而被踩.突然想起来看网评的态度. 总会被网评影响地上气喘不过来,觉得一个文章好给点了赞,结构一会儿又冒出来另一个文章,说上一篇是假的,有理有据,让自己觉得好尴尬.有些想大骂写文章的不负责,潜意识里或许因为这个影响了自己参加网评的心态.其实当然不是文章的错,不只是. 以前发表的东西,都是负责的,经过认真考量才会发出来一个观点.现在,比较短周期,没做好充分的调查就会发出来,都显得很年轻,内容比较片面,毕竟什么人都可以说话了.

矿业大学论文模板

main.tex 1 \documentclass[preprint,authoryear,PhD]{cumtthesis} 2 \usepackage{fancyvrb}%----------------------------------------------------------用于代码排版 3 \DefineVerbatimEnvironment{shell}{Verbatim}% 4 {frame=single,framerule=0.3mm,rulecolor=\color{re