博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
圆圈中最后剩下的数字--约瑟夫环问题
阅读量:6429 次
发布时间:2019-06-23

本文共 1065 字,大约阅读时间需要 3 分钟。

用环形链表实现约瑟夫环问题

1 typedef struct node 2 { 3     int data; 4     struct node * next; 5 }Node, *Link; 6  7 Link create(int n) //生成环形链表 8 { 9     Link head, rear ;10     Link p = new Node; //第n个节点11     p->data = n;12     head = rear = p;13     for( int i=n-1; i>0; i-- ) //从前面插入n-1个节点,注意,单项链表是便于逆向顺序构成的。 14     {15         p = new Node;16         p->data = i;17         p->next = head;18         head = p; //每插入一个节点,头指针前移一个19     }20     rear->next = head ; //n节点指向头节点,构成环形链表21     return h;22 }23 24 int joseph( int m, Link h ) //找出最后一个25 {26     Link p = h;27     int i=0;28     while( p->next != p ) //只有一个节点时结束循环29     {30         i++;31         if( i == m-1) //数了m-1个节点32         {33             Link q = p->next ; //删除下一个,即第m个34             p->next = q->next ;35             delete q;  //因为结点都是new出来的内存堆区域里的空间,所以必须delete才能收回36             i = 0;  //删除一个节点,计数器置为037         }38         p =p->next ;39     }40     int last= p->data ;41     delete p;   //删除最后一个节点,避免内存泄露42     return last;43 }

转载于:https://www.cnblogs.com/kevinGaoblog/archive/2012/04/07/2435654.html

你可能感兴趣的文章
UIApplication
查看>>
12:Web及MySQL服务异常监测案例
查看>>
数据库性能优化之冗余字段的作用
查看>>
DBA_实践指南系列9_Oracle Erp R12应用补丁AutoPatch/AutoControl/AutoConfig(案例)
查看>>
数据库设计三大范式
查看>>
ionic 字体的导入方法
查看>>
内部类详解
查看>>
类加载机制
查看>>
火柴棒等式(2008年NOIP全国联赛提高组)
查看>>
mongodb int型id 自增
查看>>
Java中的4种代码块
查看>>
Ocelot(七)- 入门
查看>>
生成水杯热气
查看>>
程序员工作心法
查看>>
三个常用的PHP图表类库
查看>>
python中异常处理--raise的使用
查看>>
高中数学与初中数学的接轨点
查看>>
Spring Data Redis—Pub/Sub(附Web项目源码)
查看>>
Linkedin工程师是如何优化他们的Java代码的(转)
查看>>
winfrom 如何保存datagridview中的某一行数据
查看>>