在线客服系统

数据结构中栈在过河问题中的应用

时间:2014-12-08 20:48 来源:www.fabiaoba.com 作者: 李橙等 点击:
  摘要:栈是数据结构中的一种基本而重要的存储结构。栈是一种限定仅在一段进行插入与删除操作的线性表,插入或删除是限定在表尾进行的,我们通常将表尾称之为栈顶。相反的,将表头端称之为栈底。在栈中,先插入的元素被压在栈底,最后才能出栈,所以栈也被称为后进先出表。因而,实际应用中,凡是符合后进先出的问题,我们都可以用堆栈来处理和实现。栈的典型应用包括:递归函数的调用,进制转换,括号比配问题,背包问题,中缀表达式求值等等。过河问题是一个非常经典的智力问题,很多竞赛中都使用过这个题材,该文中我们将讨论栈对于过河问题的应用。
 
  关键词:栈;数据结构;计算机编程;过河问题
 
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)31-7279-03
 
  Abstract: Stack is a basic and important storage of data structure. Stack is a limit for the insert table of linear and delete operations in only one paragraph, insert or delete is defined in the rear, we usually set the table tail call stack top. On the contrary, the header end called the bottom of stack. On the stack, first insert the element is pressed on the bottom of the stack, and finally to the stack, so the stack is also called the LIFO list.Therefore, in practical application, in line with all the LIFO problem, we can be used to deal with the stack and the implementation. Including the typical application stack: a recursive function calls, hexadecimal conversion,parentheses matching problem, knapsack problem, infix expression etc..Crossiong river is a very classic intellectual problem, lots of competition use this subject, in this paper, we will discuss the application stack for acrossing river problem.
 
  Key words: stack;data structure; computer programming;crossing river problem
 
  1 问题描述与分析
 
  问题描述如下:M个坏人,N个好人过河,只有1条船,这条船每次只能至多只能载2个人过河(包括开船的),船开过了河还要有一个人把船开回来。在船的两岸坏人数量不能多于好人,否则坏人会欺负好人。要怎样将3个好人和3个坏人平安送达对岸。
 
  问题分析:在此,我们假定共有3个坏人3个好人(M=3、N=3),原本这6个人在左岸,要到右岸去,对问题进行具体分析。由于船上只能一次载2个人,因而每次过河共有5种方案供选择:1个坏人一个好人;两个坏人;两个好人;一个坏人;一个好人。我们可以使用试探法,用这5种方案轮流进行过河流程,并计算两岸剩下的好人与坏人人数,如果符合规定,就保留这个方案,否则尝试其他方案,直到6个人顺利过河。
 
  2 核心算法思想
 
  在此我们定义结构体包含4个成员:好人个数,坏人个数,船的状态(左岸、右岸),以及已经尝试的乘船方案(共5种方案)。轮流尝试5种过河方案,使用堆栈保存正确的方案步骤,同时计算两岸好人与坏人个数,如果不符合坏人不多于好人的规则,则弹出栈中已经保存的方案步骤,否则如果符合坏人不多于好人的规则,则继续尝试方案寻找下一过河方案。如此反复一直到6个人正确到达右岸。

www.fabiaoba.com),是一个专门从事期刊推广期刊发表、投稿辅导、发表期刊的网站。
  本站提供如何投稿辅导、发表期刊,寻求论文刊登合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级论文刊登/国家级论文刊登/ CSSCI核心/医学投稿辅导/职称投稿辅导。

投稿邮箱:fabiaoba365@126.com
 在线咨询: 投稿辅导275774677投稿辅导1003180928
 在线咨询: 投稿辅导610071587投稿辅导1003160816
 联系电话:13775259981

联系方式
李老师QQ:发表吧客服610071587 陈老师QQ:发表吧客服275774677 刘老师QQ:发表吧客服1003160816 张老师QQ:发表吧客服1003180928 联系电话:18796993035 投稿邮箱:fabiaoba365@126.com
期刊鉴别
  • 刊物名称:
  • 检索网站:
热门期刊
发表吧友情提醒

近来发现有些作者论文投稿存在大量剽窃、抄袭行为,“发表吧”对此类存在大量剽窃、抄袭的论文已经停止编辑、推荐。同时我们也提醒您,当您向“发表吧”投稿时请您一定要保证论文的原创性、唯一性,这既是对您自己负责,更是对他人的尊敬。

此类投稿的论文如果发表之后,对您今后的人生和事业将造成很大的麻烦,后果不堪设想,请您一定要慎重,三思而后行。

如因版权问题引起争议或任何其他原因,“发表吧”不承担任何法律责任,侵权法律责任概由剽窃、抄袭者本人承担。

 
QQ在线咨询
陈老师:275774677
张老师:1003180928
李老师:610071587
刘老师:1003160816
论文刊登热线:
137-7525-9981
微信号咨询:
fabiaoba-com

友情链接

申请链接