欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构--约瑟夫环课程设计报告

    • 资源ID:1394456       资源大小:114.50KB        全文页数:9页
    • 资源格式: DOC        下载积分:100金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    下载资源需要100金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

    数据结构--约瑟夫环课程设计报告

    1、课程设计报告课程设计报告 一、一、需求分析需求分析 1、 本演示程序中,利用单向循环链表存储结构模拟约瑟夫问题的进行。程序运行后, 首先要求用户指定初始报数上限值,然后读取个人的密码。可设 n30。此题所用 的循环链表中不需要“头结点” ,因此在程序设计中应注意空表和非空表的界限。 2、 演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之 后,由用户在键盘上输入演示程序中规定的运算命令:相应的输入数据和运算结果 显示在其后。 3、 程序执行的命令包括: 1) 构造约瑟夫环;2)执行约瑟夫环,并输出出列人的序号以及相应的密码; 3)结束。 4、测试数据 1)m 的初始值为

    2、20; 2)n=7,7 个人的密码依次为:3、1、7、2、4、8、4。 3)首先 m 值为 6,正确的出列顺序应为 6、1、4、7、2、3、5。 二、概要设计二、概要设计 为实现上述程序功能, 应以单向循环链表表示约瑟夫环。 为此, 需要两个抽象数据类型: 单向循环链表和约瑟夫环。 1) 、单向循环链表的抽象数据类型定义为: ADT List 数据对象:D=aiaiElemset,i=1,2,n,n0 数据关系:R1=a(i-1),aia(i-1),aiD,i=2,n 基本操作: InitList( /元素类型 Typedef struct NodeType ElemType data; El

    3、emType *next; ElemType, *LinkTypet; /结点类型,指针类型 void FreeNode(LinkType If(!s) return NULL; s-data=p-data; s-next=NULL; return s; ElemType Elem(LinkType p) /若指针 p!=NULL,则返回 p 所指结点的数据元素 LinkType SuccNode(LinkType p ) /若指针 p!=NULL,则返回指向 p 所指结点的后继元素的指针, /否则返回 NULL 2、根据单向循环链表的基本操作特点,有序表采用有序链表实现。链表设头、尾两个指针

    4、 和表长数据域,但此链表中并未设头结点。 Typedef struct LinkType head,tail; /分别指向线性链表的头结点和尾结点 Int size; /指向链表的当前长度 creatList_L /有序链表类型 有序链表的基本操作设置如下: Int ListLength(creatList_L); /返回链表的长度 LinkType GetElem(creatList_L) /若 L 存在且 0next = p; tail = p; tail-next = head; return tail; 3、约瑟夫环利用单向循环链表类型来实现; typedef struct LNode

    5、; 其中部分代码如下: void ListDelete_L(LinkList L,int key,int n) int i; LinkList q; while( n0) for (i = 1; i next; q =L-next; printf(“第%d 个人出列,密码%dn“,q-num,q-password); L-next =q-next; key = q-password; free(q); n-; 4、主函数 void main() LinkList s; int n,m; printf(“请输入总人数 N 和上限数 M:“); scanf(“%d%d“, printf(“请输入%

    6、d 个人的密码n“,n); s=creatList_L(n); printf(“序号 密码n“); ListDelete_L(s,m,n); 5、函数的调用关系图反映了演示程序的层次结构: 四、调试分析四、调试分析 1、 由于刚开始对单项循环链表是用的不熟练, 在程序中的一句语句 for (j = 1; j 1。在对程序改正后,这一现象也就不再存在。 2、本程序的模块划分比较合理,且尽可能将指针的操作封装在结点和链表的两个模块中, 致使集合模块的调试比较顺利。 3、本实习作业采用数据抽象的程序设计方法,将程序划分为四个层次结构:元素结点、 单项循环链表、约瑟夫环和主控模块,使得设计时思路清晰,实现时调试顺利,各模块具有 较好的可重用性,确实得到了一次良好的程序设计训练。 五、用户手册五、用户手册 1、本程序的运算环境为 Windows 操作系统,执行文件为:CLD.exe。 2、进入演示程序后即显示文本方式的用户


    注意事项

    本文(数据结构--约瑟夫环课程设计报告)为本站会员(毕****文)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583