josephus问题

该博客介绍了如何使用顺序表解决Josephus问题,包括理解算法思想,实现数据元素的插入、删除和查找操作。文章强调了顺序表的逻辑结构特性和随机存放特性,并指出在数据结构存储和指针函数使用时的常见错误。最后,作者分享了程序设计的概要流程和总结。
摘要由CSDN通过智能技术生成
Josephus问题:设有n个人围坐在一个圆桌周围,现从第s个人开始报数,数到第m个人出列,然后从出列的下一个人处重新开始报数,数到第m个人又出列,……如此反复直到所有的人全部出列为止。对于任意给定的n、s和m,求按出列次序得到的n个人员的序列。

基本要求:
(1)熟悉将算法转换为程序代码的过程。
(2)了解顺序表的逻辑结构特性,熟练掌握顺序表存储结构的描述方法。
(3)熟悉掌握顺序表的基本运算:查找、插入、删除等,掌握顺序表的随机存放特性。
(4)熟悉josephus的基本算法思想。

问题分析:
(1) 设计任务:以顺序表作为存储结构,实现josephus算法,实现顺序表上的数据元素的插入、删除和查找运算。
输入输出:输入对应的用户界面要求,输出对应的操作结果。(2)程序功能:内部实现josephus算法的解决,外部提供接口给用户体验。
(3)概要设计:
数据结构:线性表的顺序存储表示
程序流程:先在主程序中初始化顺序表,然后打印用户选择界面,通过用户的选择,调用对应的函数,实现对应的功能。主函数调用其他程序模块,各模板之间相互独立。

代码实现:

#include <iostream>
using namespace std;
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

#define MaxSize 50
typedef char ElemType;

typedef struct Seqlist
 {
     //线性表顺序存储结构定义
     ElemType
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值