数据结构课程第二章部分习题解答
第二章 数组
2-1 设n个人围坐在一个圆桌周围,现在从第s个人开始报数,数到第m个人,让他出局;然后从出局的下一个人重新开始报数,数到第m个人,再让他出局,……,如此反复直到所有的人全部出局为止.下面要解决的Josephus问题是:对于任意给定的n, s和m,求出这n个人的出局序列.请以n = 9, s = 1, m = 5为例,人工模拟Josephus的求解过程以求得问题的解.
【解答】
出局人的顺序为5, 1, 7, 4, 3, 6, 9, 2, 8.
2-2 试编写一个求解Josephus问题的函数.用整数序列1, 2, 3, ……, n表示顺序围坐在圆桌周围的人,并采用数组表示作为求解过程中使用的数据结构.然后使用n = 9, s = 1, m = 5,以及n = 9, s = 1, m = 0,或者n = 9, s = 1, m = 10作为输入数据,检查你的程序的正确性和健壮性.最后分析所完成算法的时间复杂度.
【解答】函数源程序清单如下:
void Josephus( int A[ ], int n, s, m ) {
int i, j, k, tmp;
if ( m == 0 ) {
cout << "m = 0是无效的参数!" << endl;
return;
}
for ( i = 0; i 1; i-- ) { /*逐个出局,执行n-1次*/
if ( i == k ) i = 0;
i = ( i + m - 1 ) % k; /*寻找出局位置*/
if ( i != k-1 ) {
tmp = A[i]; /*出局者交换到第k-1位置*/
for ( j = i; j < k-1; j++ ) A[j] = A[j+1];
A[k-1] = tmp;
}
}
for ( k = 0; k < n / 2; k++ ) { /*全部逆置, 得到出局序列*/
tmp = A[k]; A[k] = A[n-k+1]; A[n-k+1] = tmp;
}
}
例:n = 9, s = 1, m = 5
0
1
2
3
4
5
6
7
8
k = 9
1
2
3
- 数据结构课程设计试题及答案 > 数据结构课程第二章部分习题解答
-
数据结构课程第二章部分习题解答
下载该文档 文档格式:DOC 更新时间:2002-05-02 下载次数:0 点击次数:1
文档基本属性 文档语言: Simplified Chinese 文档格式: doc 文档作者: 0810-zxh 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: 分类: 创建时间: 上次保存者: 修订次数: 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 段落数: 字节数: 备注: 演示格式: 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
-
DOC格式下载
- 更多文档...
-
上一篇:数据结构与算法分析课程设计题目
下一篇:2006年度"四川省精品课程"
点击查看更多关于数据结构课程设计试题及答案的相关文档
- 您可能感兴趣的
- 数据结构课程设计c++ 数据结构课程设计 数据结构课程设计实例 数据结构课程设计代码 数据结构课程设计体会 数据结构课程设计题目 数据结构课程设计报告 数据结构课程设计范文 数据结构课程设计目的
- 大家在找
-
- · 一级msoffice免费
- · 党政公文写作大全
- · 大功率双向晶闸管型号
- · 吴江模具招工
- · 我爱ppt
- · sj电脑主题下载
- · 中国移动通信网站
- · 外贸单证实务说课
- · 夏家三千金第二部36
- · 狂野角斗士20120506
- · 数字电视运作模式
- · 徐州物资市场拆迁
- · 外贸英语函电下载
- · 成都广播电台fm91.4
- · 包养大学校花
- · 必需氨基酸
- · 爱让我成长作文
- · mp3剪切大师注册码
- · 南阳南泰共轨试验台
- · 北京蓝建伟业机械刘兰夫
- · 高中化学选修3教案
- · ktv少爷招聘信息
- · 蒙面超人000
- · 机房空调安装
- · 计算机组成原理试题库
- · 钢琴别恋迅雷下载
- · 司法企业破产法
- · 怎么使用快播下载电影
- · 庞蒂克跑车多少钱
- · 高级车工视频
- 赞助商链接