数据结构的作业.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构的作业

作业2:Josephus问题 基本问题:设n个人,围坐在一个圆桌周围,现在从第s个人开始报数,数到第m个人,让他出局;然后从出局的下一个人重新开始报数,数到第m个人,再让他出局,……,如此反复直到所有的人全部出局为止。 注:m,n,s可由玩家自定。若不设定,其缺省为n = 9, s = 1, m = 5。各位同学可以访问下一节的“信息共享-实验评测”,登录系统后做1012题Joseph。 变形问题1:设n个人,围坐在一个圆桌周围,现在从第s个人开始报数,数到第m个人,让他出局;然后反转方向,从出局的下一个人重新开始报数,数到第m个人,再让他出局,再反转方向……,如此反复直到所有的人全部出局为止。 变形问题2:设有k个好人在前k个坏人在后共计n=2k个人,围坐在一个圆桌周围,现在从第1个人开始报数,数到第m个人,让他出局;从出局的下一个人重新开始报数,数到第m个人,再让他出局……,如此反复直到所有坏人都出局而所有好人都存活下来为止。接受用户输入的任何一个k,编程输出合适的m。(这个编程可在“实验评测”1012题中测试实现) 实验2、单链表一元多项式运算 目的:掌握链式存储的单链表的一个典型应用。 问题描述:用单向链表保存一元多项式,实现它的创建、显示以及算术加法操作。 步骤: 1.定义一元多项式的ADT和基本操作。 2.采用链式存储结构保存多项式并实现创建、显示。 3.实现多项式加法操作。 设备和环境:PC计算机、Windows操作系统、C/C++开发环境 结论:能够定义一元多项式,掌握有序单链表的复杂合并。 实验3、线性表的顺序存储和链式存储实现 目的: 1.掌握线性表的不同存储结构下的实现。 2.练习编写实验报告1。 问题描述:完成线性表的顺序存储和链式存储方式的实现。实现线性表ADT中列出的基本操作。采用有/无头结点两种不同的方式逐一实现。 步骤: 1.定义线性表的ADT和基本操作,并给出相应的C语言版本。 2.完成创建、查找、插入、删除以及遍历。 3.实现双向链表的各项基本操作,包括:创建、撤销、清除、插入、修改、删除、定位等。 4.完成实验的实验报告,报告的格式采用《数据结构题集》的模板格式。两周之后提交。 设备和环境:PC计算机、Windows操作系统、C/C++开发环境 结论:能够用不同存储结构实现线性表,可以采用有/无头节点的方法来管理,能够体会其中的差异。 思考题: 1.链式考虑动态链和静态链两种方法。 实验4、表达式求值 目的: 1.掌握使用栈来计算四则运算表达式的值。 2.通过这个学期的强化练习,能够较熟练地掌握一门编程语言。 问题描述:完成教材3.2的应用举例,特别是实现利用栈结构完成表达式求值。 步骤: 1.用C语言定义所需栈的ADT和基本操作。 2.实现表达式求值的算法。 3.测试自己完成的练习,包括不断改进程序的输入、输出等。 设备和环境:PC计算机、Windows操作系统、C/C++开发环境 结论:能够理解进而掌握对栈结构的定义和使用;理解基于栈结构的应用的基本特点。 思考题: 1. 实现一个可编程计算器。计算器能够完成多个功能:a)、能够执行带括号的四则算术运算;b)、支持表达式包含变量,包括支持重复出现的变量;c)、使用自定义的简单函数;d)、其他你自己想到的功能。 2.迷宫求解目前可以选作。 实验5、银行排队的模拟[选做] 目的:掌握使用队列来模拟类似银行的排队处理系统。 问题描述:完成教材3.5(pp65)的银行应用模拟。 步骤: 1.用C语言定义所需队列的ADT和基本操作。 2.实现银行排队的模拟算法。 3.测试自己完成的练习,观察并理解模拟程序的各个处理。 设备和环境:PC计算机、Windows操作系统、C/C++开发环境 结论:能够理解进而掌握对队列结构的定义和使用;理解基于队列的应用的基本特点。 思考题: 1.计算杨辉三角某一行的系数的程序。 2.实现通用的输出二项式系数的算法。即:对任意整数n,n0,使用循环队列输出(a+b)n的各项系数。 实验6、字符串ADT实现 目的:掌握字符串的定义及基本操作的实现。 问题描述:用堆存储方式保存字符串,实现字符串的各种基本操作,包括赋值、替换、取子串、串连接等。 步骤: 1.用C语言定义字符串的ADT和基本操作。 2.实现赋值、替换、取子串、串连接等操作。 3.测试自己完成的练习,观察每个操作的执行效果。 设备和环境:PC计算机、Windows操作系统、C/C++开发环境 结论:能够理解并掌握字符串的定义和堆存储方式的实现方法。 思考题: 1.估算各个操作的复杂度和空间利用效率。 实验7、文件字符串查找 目的:掌握

文档评论(0)

tmd2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档