万事俱备,只欠东风:栈与队列的应用

1 栈的应用

栈在很多面试的问题中都会被问到,其实按照我的理解栈的应用就是递归的应用。所以接下来将会介绍一些有关栈的应用,当你看到这些应用,会有一种感觉:这特么不就是递归吗?

OK,话不多说,开始栈的应用

1.1 递归

栈在程序设计中具有非常广泛的应用,其中递归的应用是求职者必须知道的。在此之前我们先了解一下递归,然后再解释如何应用栈实现递归。

递归的概念

想必大家都看过《盗梦空间》,主人公在梦里不断陷入一个接一个的梦中,从最浅层的梦逐步深入到更深的梦中,直至自己也不知道自己是在梦中还是现实中了。如果主人公学过递归,应该就能成功退出梦幻,哈哈哈,开个玩笑。在这里,我讲一下个人理解的递归:通过不断调用函数自身进行压栈,直至终止条件,将其结果计算出来进行弹栈,并将结果返回给弹栈之后的栈顶,一直弹栈到栈空为止。

可能我这段说辞有点绕。那给大家搞点形象的。

栈-递归.png

看完上面这幅图,相信很多同学对栈的概念有了更深的理解。接下来我们将通过一些实际的案例进一步解释栈在递归方面的应用。

遍历文件

我相信很多同学看到递归的应用,第一时间肯定是浏览器。因为这个例子已经被用烂了,我们在平时使用浏览器的时候,当需要返回上一个页面的时候,可以使用返回键,然后之前的页面能够迅速地被刷新出来。其实这里面就是运用了栈,顺序点击查看的网页界面一个个都被压栈。当你按下返回按钮,当前页面就被弹栈出去了。

但是今天我们讲一个更具工程应用价值的例子-遍历文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值