【精选】数据结构实习报告模版.pdf

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

数据结构 上机实习报告 实验题目: 约瑟夫环问题求解 班级: 姓名: 学号: 指导老师: 完成日期: 一、 需求分析 1、问题描述 已知n 个人(编号分别为 1,2 ,...,n )按顺时针方向围坐一圈,每人持有一个正整数 密码。 开始时任选一个报数上限值 m ,从编号为 1 的人按顺时针方向自 1 开始报数,报到 m 时停止报数,报 m 的那个人出列;将他的密码作为新的m 值,从他在顺时针方向的下一 个人开始重新从 1 报数,数到 m 的那个人又出列;依此规律重复下去,直到所有人全部出 列。输入 n ,m 两个正整数以及 n 个正整数为密码,设计程序来求 出列的编号序列。 2、功能需求 用户准备好输入文件,其中包含程序中需要的输入数据。程序在计算机终端上显示运算结果。 程序执行的命令包括: 1)构造约瑟夫环; 2 )分析并判断输入数据的合法性 3 )约瑟夫环报数和出列的模拟与出列编号序列的输出; 4 )结束。 3 、输入及输出格式 1、 输入数据 数据从文件输入,输入文件的格式如下: 文件“JRInput.txt”第一行的正整数代表人数 n , 第二行的正整数代表密码的初始值 m , 从第三行开始有 n 对正整数分别代表 n 个人的编码和密码。 2 、 输出数据 (结果输出到屏幕,输出结果通常只有一行,含n 个整数,表示 n 个人的出列顺序。 3、 输入输出样例 输入文件 JRInput.txt 内容如下: 7 20 1 3 2 1 3 7 4 2 5 4 6 8 7 4 屏幕输出: 出列序号是:6 1 4 7 2 3 5 二、 概要设计 1、数据特性分析 a )n 代表总人数,m 是初始密码 b )数据元素:a =(n ,m ) ,其中 i=1,2,…,n (n≥1),n 、m 代表第 i 个人的编号和持有的密码 , i i i i i 其中 ni 不能省略 c ) 数据元素间的关系:对 a (1≤i≤n-1)存在后继次序关系a , a ;a 的直接后继是a i i i+1 n 1 2、操作特性分析 a ) 建空约瑟夫环 b )通过循环在约瑟夫环的尾部插入新的数据元素,从而建立约瑟夫环 c )在约瑟夫环中从某结点开始遍历若干步 d )删除约瑟夫环中某结点的下一个结点 3 、问题的抽象数据类型分析 约瑟夫环的数据元素是由编号和密码值组成的二元组。约瑟夫环的逻辑结构是线性表。 求解约瑟夫环问题可以分为两个步骤: 1. 构造约瑟夫环; 2. 约瑟夫环循环报数、出列。 在第一个步骤,由于构造约瑟夫环是通过在表尾循环插入元素结点,因此约瑟夫环的逻 辑操作有: 1. 初始化约瑟夫环; 2. 在约瑟夫环表尾插入; 3. 循环报数出列。 通过以上分析,确定约瑟夫环抽象数据类型定义如下: ADT JesephRing 数据元素: a =(n ,m ) ,i=1,2,…,n (n≥1),n ,m 代表第 i 个人的编号和持有的密码 ,其 i i i i i 中ni 不能省略。 结构:线性结构,对数据元素 a (1≤i≤n-1)存在次序关系a ,a , a 的直继是a 。 i i i+1 n 1 逻辑操作:设 J 为 JesephRing 型 JesephRingInitiate(J); //构造一个空的约瑟夫环 J 。 JesephRingInsertEnd(J, x); //在约瑟夫环 J 尾部插入新元素 x ,成功返回 1,失败返回 0 。 JesephRing(J,m); /*给定初始报数上限 m ,从 1

文档评论(0)

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

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

1亿VIP精品文档

相关文档