线性表——链式存储结构之循环单链表的应用
来源:互联网 发布:数据库密码忘了怎么办 编辑:程序博客网 时间:2024/04/29 23:10
题目:编写一个程序求解约瑟夫(Joseph)问题。有n个小孩围成一圈,给他们从1开始依次编号,从编号为1的小孩开始报数,数到第m个小孩出列,然后从出列的下一个小孩重新开始报数,数到第m个小孩又出列,…,如此反复直到所有的小孩全部出列为止,求整个出列序列。如当n=6,m=5时的出列序列是5,4,6,2,3,1。
代码示例:
#include <iostream>using namespace std;struct Child//小孩结点类型{int no;//小孩编号Child *next;//指向下一个结点指针};class Joseph{int n, m;Child *h;//首结点指针public:Joseph(int n1, int m1)//构造函数,建立有n1个结点的循环单链表{int i;Child *p, *r;n = n1; m = m1;h = new Child();h->no = 1;r = h;for (i = 2; i <= n; i++){p = new Child();p->no = i;r->next = p;r = p;}r->next = h;}~Joseph()//析构函数,所有结点在出列时已释放{}void Jsequence()//求解约瑟夫序列{int i, j;Child *p, *q;for (i = 1; i <= n; i++){p = h; j = 1;while (j<m - 1){j++;p = p->next;}q = p->next;cout << q->no << " ";p->next = q->next;delete q;h = p->next;}}};void main(){int n = 6, m = 5;Joseph obj(n, m);cout << "n=" << n << ",m=" << m << "的约瑟夫序列:";obj.Jsequence();cout << endl;}
阅读全文
0 0
- 线性表——链式存储结构之循环单链表的应用
- 线性表——链式存储结构之循环单链表
- 线性表——链式存储结构之循环双链表
- JAVA数据结构之线性表的链式存储结构——循环链表
- 线性表——链式存储结构之双链表的应用
- 线性表——链式存储结构之单链表
- 线性表——链式存储结构之单链表
- 线性表的链式存储结构——单链表
- 【线性表】链式存储结构之:单链表
- 线性表-链式存储结构之单链表
- 【线性表】链式存储结构之:循环链表
- 线性表-链式存储结构之循环链表
- JAVA数据结构之线性表的链式存储结构——单链表
- 线性表的链式存储结构---循环链表
- 线性表的链式存储结构-单链表
- 线性表的链式存储结构---单链表
- 线性表的链式存储结构--单链表
- 线性表的链式存储结构:单链表
- Java中keySet()返回值的排序问题
- jqueryeasyui 中 datetimebox 取两个日期间相隔的天数
- J7612
- Android中实现iOS中的毛玻璃效果
- Kafka+Spark Streaming+Redis实时计算整合实践
- 线性表——链式存储结构之循环单链表的应用
- think in java第六章 访问权限控制 总结随笔
- Memcheck:一个内存错误检测器
- Coderforces Domino piling
- 十三个鲜为人知的大数据学习网站
- 设计模式的解析和实现
- maven的下载、安装与配置
- KRpano (大)小地图添加热点,同步切换场景
- Cachegrind:缓存和分支预测分析器