敢死队问题1.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
敢死队问题1

华 北 科 技 学 院 课程设计说明书 (数据结构课程设计) 班级: 姓名: 学号: 设计题目: 设计时间: 指导教师: 评 语:________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:__ __评阅教师:__ ___ 《数据结构》课程设计实验报告 开课实验室: 基础实验室 一 2010 年9 月16 日 实验题目 敢死队问题 1.实验题目 敢死队问题 2.实验设备及环境 PC兼容机、Windows操作系统、VB软件等。 3.功能模块简介和系统结构图 系统结构图 本程序有四个功能模块,包括三个解决敢死队问题方案的模块和一个退出系统模块。三个解决方案分别采用了循环聊表储存结构、线性表储存结构、循环队列储存结构。功能模块如下图所示。 功能模块具体简介如下: (1).循环单链表 以单循环链表为存储结构,包含三个模块: 1.主程序模块 包含敢死队人数的输入,死亡数字的输入,函数的调用,结果的输出。 2.构造链表并初始化 构造链表,给每个结点赋值,给队员编号。 3.删除 当报数到死亡数字时队员出列去执行任务,删除该节点。 (2).线性表储存结构 功能设计本程序其实质是约瑟夫环问题,本次实验用了线性表数据结构,并运用模块化的程序设计思想,算法的实现是这样的: 定义类类型 定义变量并初始化 线性表初始化 当队员数小于等于1时,输出结果 算法流程图 循环队列储存结构解决 功能设计 本程序其实质是约瑟夫环问题,本次实验用了循环队列数据结构,并运用模块化的程序设计思想,算法的实现是这样的: 这个方法是用队列循环来做的,实现的方法是这样的:首先从第一号开始报数,循环到指定的偏移位置删除结点,直至剩下一个结点。然后再比较一下它的号码是不是等于1,如果等于则输出开始计数位置,如果不等,继续循环查找,直到找出符合条件的计数起始位置,输出结果。 算法流程图 系统的主要界面设计及运行说明: 进入用户主界面,选者实现结果的方法 以10个队员,死亡数字为5来运行,结果如下 选择第2项功能,运用线性表储存结构 选择第3项功能,运用循环队列来实现结果 5.程序的主要代码: #include stdio.h #includestring.h #includestdlib.h #includemalloc.h //-------------------循环单链表---------------------------------------------- typedef struct node { int data; struct node *next; }LNode;/* 定义结点类型 */ LNode* CREAT(int n) /* 创建循环链表 */ { LNode *s,*q,*T; int i; if(n!=0) { T=q=(LNode *)malloc(sizeof(LNode)); q-data=1;/* 生成第一个结点并使其data值为1 */ for(i=2;i=n;i++) { s=(LNode *)malloc(sizeof(LNode)); q-next=s; q-next-data=i;/*赋值*/ q=q-next; } q-next=T; } return T; } DELETE (LNode* T,int m)/* 链表的删除 */ { LNode *a;int i; while (T-next!=T) { for (i=1;im-1;i++)/*查找要删除结点的前一结点*/ T=T-next; a=T-next; T-next=a-next; free(a); T=T-next; } printf(\n); return (T-data); } //---------------------------------------------------------------

文档评论(0)

2017meng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档