求数据结构算法!急用!1、 约瑟夫环问题约瑟夫问题的描述是:编号为 1,2,----,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始人选一个正整数作为报数上限值m,从第一个
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/20 01:37:11
求数据结构算法!急用!1、 约瑟夫环问题约瑟夫问题的描述是:编号为 1,2,----,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始人选一个正整数作为报数上限值m,从第一个
求数据结构算法!急用!
1、 约瑟夫环问题
约瑟夫问题的描述是:编号为 1,2,----,n的n个人按顺时针方向围坐一圈,
每人持有一个密码(正整数).一开始人选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数.报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止.试设计程序求出出列顺序.
基本要求:
利用单向循环链表存储结构模拟次过程,按照出列的顺序打印个人的编号.
2、 停车场管理
设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出.汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用.试为停车场编制按上述要求进行管理的模拟程序.
基本要求:
以栈模拟停车场,以队列模拟车场外的便道.每一组输入的数据包括三个数据项:汽车“到达”或“离去”的信息、车牌号以及“到达”或“离去”的时刻(例如数据为(‘A’,1,5),其中A表示到达,D表示离去,E表示结束;1表示车牌号;5表示汽车停留的时间).对每一组输入数据进行操作后的输出信息为:若是汽车到达,则输出汽车在停车场内或便道上的停车位置:若是车辆离去,则输出汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费).
掌握线性结构在两种存储结构上对实际问题的基本操作.
求数据结构算法!急用!1、 约瑟夫环问题约瑟夫问题的描述是:编号为 1,2,----,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始人选一个正整数作为报数上限值m,从第一个
数据结构主要研究组织大量数据的方法,而算法分析则是对算法运行时间的评估.随着计算机的速度越来越快,对于能够处理大量输入数据的程序的需求变得日益急切.可是,由于在输入量很大的时候,程序的低效率现象变得非常明显,因此这又要求对效率问题给予更仔细的关注.通过在实际编程之前对算法的分析,学生可以决定一个特定的解法是否可行.例如,学生在本书中将读到一些特定的问题并看到精心的实现方法是如何把对大量数据的时间限制从16年减至不到1秒的.因此,若无运行时间的阐释,就不会有算法和数据结构的提出.
我所选择的教材是《数据结构与算法分析——C语言描述》(原书第2版),英文版的名称是《Data Structures and Algorithm Analysis in C》,作者是:(美)Mark Allen Weiss.原书曾被评为20世纪顶尖的30部计算机著作之一.之所以选这本书,还因为它的简体中文版翻译得相当不错,几乎没有给我的阅读带来什么障碍.^_^
这本教科书所使用的是C语言,也许很多人会说C语言已经过时了,但是,我认为在数据结构的学习中,应该用尽量简单的语言,以免进入了语言的细枝末节中,反而冲淡了主题.实际上在国外的许多大学中(甚至中学),数据结构和算法分析的课程是选用Scheme的,例如MIT麻省理工大学极其著名的SICP课程.呵呵,语言又能说明什么呢?
书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能、效率以及对运行时间分析的基础上考查了一些高级数据结构,从历史的角度和近年的进展对数据结构的活跃领域进行了简要的概括.由于本书选材新颖,方法实用,题例丰富,取舍得当.本书的目的是培养学生良好的程序设计技巧和熟练的算法分析能力,使得他们能够开发出高效率的程序.从服务于实践又锻炼学生实际能力出发,书中提供了大部算法的C程序和伪码例程,但并不是全部.一些程序可从互联网上获得.
本书是《Data Structures and Algorithm Analysis in C》一书第2版的简体中译本.原书曾被评为20世纪顶尖的30部计算机著作之一,作者Mark Allen Weiss在数据结构和算法分析方面卓有建树,他的数据结构和算法分析的著作尤其畅销,并受到广泛好评.已被世界500余所大学用作教材.
在本书中,作者更加精炼并强化了他对算法和数据结构方面创新的处理方法.通过C程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间进行了分析.
全书特点如下:
●专用一章来讨论算法设计技巧,包括贪婪算法、分治算法、动态规划、随机化算法以及回溯算法
●介绍了当前流行的论题和新的数据结构,如斐波那契堆、斜堆、二项队列、跳跃表和伸展树
●安排一章专门讨论摊还分析,考查书中介绍的一些高级数据结构
●新开辟一章讨论高级数据结构以及它们的实现,其中包括红黑树、自顶向下伸展树.treap树、k-d树、配对堆以及其他相关内容
●合并了堆排序平均情况分析的一些新结果
本书是国外数据结构与算法分析方面的标准教材,介绍了数据结构(大量数据的组织方法)以及算法分析(算法运行时间的估算).本书的编写目标是同时讲授好的程序设计和算法分析技巧,使读者可以开发出具有最高效率的程序. 本书可作为高级数据结构课程或研究生一年级算法分析课程的教材,使用本书需具有一些中级程序设计知识,还需要离散数学的一些背景知识.