杭电数据结构joseph环
更新时间:2023-05-17 20:55:01 阅读量: 实用文档 文档下载
杭电数据结构joseph环
《数据结构》
课程设计报告
课程名称:
课程设计题目:
姓 名: 院系:
专 业:
年 级:
学 号:
指导教师: 《数据结构》课程设计 joseph环 计算机学院 计算机科学与技术 大二 王立波
2012年5月17日
杭电数据结构joseph环
目 录
1 课程设计的目的………………………………………………………………x 2 需求分析………………………………………………………………………x 3 课程设计报告内容……………………………………………………………x
1、概要设计……………………………………………………………………x
2、详细设计……………………………………………………………………x
3、测试结果……………………………………………………………………x
4、程序清单……………………………………………………………………x 4 小结 …………………………………………………………………………x 5 参考文献 ………………………………………………………………x
1、 课程设计的目的
(1) 熟练使用C++语言编写程序,解决实际问题;
(2) 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
(3) 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
(4) 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
2、 需求分析
1、任务:
(一):设置一个含有{data,num,*next}变量的结构体。
(二):输入链表的长度n,以及初始密码m。
(三):建立只有tail指针且不带头结点,长度是n的循环链表。将第一个数赋给tail->data,用p指针标记,然后再不断的在链表尾部插入数据节点,并且最后个节点的next指针指向p,形成环状。
(四):进行数据处理,初始密码为m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。
2、测试数据
n=5,m=1 数据为1 2 3 4 5。出队顺序为1 2 4 3 5
n=5,m=1 数据为5 4 3 2 1 出队顺序为1 2 3 4 5
杭电数据结构joseph环
n=7,m=20 数据为3 1 4 2 4 7 4 出队顺序为6 7 4 1 5 3 2
3、课程设计报告内容
概要设计
(1)在分析题目要求的基础上,我首先设计了一个结构体,定义如下
struct Node //设置一个含有{data,num,*next}变量的结构体
{
Node *next;
int data;
int num;
};存储信息。
测试结果:
4、小结
杭电数据结构joseph环
一、这次课程设计的心得体会通过实践我的收获如下:
1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。
2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。
3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
二、根据我在实习中遇到得问题,我将在以后的学习过程中注意以下几点:
1、认真上好专业实验课,多在实践中锻炼自己。
2、写程序的过程中要考虑周到,严密。
3、在做设计的时候要有信心,有耐心,切勿浮躁。
4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。
5、程序清单:
#include<iostream>
using namespace std;
struct Node //设置一个含有{data,num,*next}变量的结构体
{
Node *next;
int data;
int num;
};
class Joseph
{
public:
Joseph();//构造函数,创建空链表
void Create(const int n);//创建单循环链表
bool Deal(int m);//处理约瑟夫环
private:
Node *tail;
int len;
};
Joseph::Joseph()
{
tail = new Node; //分配一个新单元,tail指向新单元
tail->next=NULL;
len=0;
}
void Joseph:: Create(const int n)//创建n个元素的链表
{
int m;
Node *p,*q;
cout<<"请分别输入"<<n<<"个人的密码: "<<endl;
杭电数据结构joseph环
cin>>m;//第一次,在尾指针所在单元输入值
tail->data=m;
tail->num=1;
q=tail;
for(int i=2;i<=n;i++)
{
cin>>m;
p=new Node;
p->data=m;
p->num=i;
tail->next=p;//尾部添加元素
tail=p;//tail指针下移,指向p
}
tail->next=q;
}
bool Joseph:: Deal(int m)//处理约瑟夫环
{
int number;
while(len)
{
Node *q,*p=tail;//p指向链表的第一个元素
while(--m)
p = p->next;//p指向要删除的前一个元素
q=p->next;//q指向要删除的元素
m = q->data;
number=q->num;
tail=p;//tail所指向删除单元的前一个
p->next=q->next;
delete q;
len--;
cout<<number<<" ";
}
return true;
}
int main()
{
int m,n;
Joseph joseph;
cout<<"请输入m的初值:"<<endl;
cin>>m;
cout<<"请输入人数n的值:"<<endl;
杭电数据结构joseph环
joseph.Create(n);
joseph.Deal(m);
system("PAUSE");
return 0;
}
6、参考文献
[1] 万健、王立波、赵葆华、吴志芳 编著. 数据结构实用教程(C++版).
正在阅读:
杭电数据结构joseph环05-17
2018-2019家乡的变化作文500字以上word版本(4页)11-29
GZ-009机电一体化设备组装与调试机电(中职组)赛项样题02-20
武汉大学06级金工投资学A卷12-24
关于大明山旅游开发建设情况的汇报03-28
2019年植树节活动新闻稿-word范文模板(4页)06-30
2011年国内钢材市场展望07-22
最新 免费孕前检查通知-精品12-08
《蜗牛》听课记录11-04
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 数据结构
- joseph
- 杭电
- 铁路简支梁桥减隔震支座设计参数的优化研究
- DMD的基因诊断-进修生-给学生
- 伍光和自然地理学大题
- 小学三年级数学上期《可能性》教学评课稿
- 广告学专业实习报告
- 成长的烦恼第一季117中英台词对照表
- 加成型液体硅橡胶的底涂剂及增粘剂_续_
- 数码相机常见参数与刑事照相
- 我国中小型房地产企业的现状及发展策略研究
- 新课标人教版小学数学毕业模拟试卷
- 模电课程设计 压控函数发生器
- 《演讲与口才》形成性考核册
- 增益可调的差动放大器设计与仿真
- 上诉人国泰财产保险有限责任公司与被上诉人王明华、杨志平、王玉
- 天津婚纱摄影工作室,拍婚纱照中的那些“小猫腻”你知道多少?
- 【股票指标公式下载】-【通达信】顾比均线(主图)
- 三层交换机配置文档
- 沪科版一次函数应用题精选
- 商务谈判上课心得
- 巴州供销社机关绩效考评办法