现实生活中栈的一个例子是佩兹糖果盒盒想象一下你有一盒佩兹糖果盒,里面塞满了红色、黄色和白色的糖果盒但是你不喜欢黄色的糖果盒。使用栈(有可能用到多個栈)写一段程序在不改变盒内其他糖果盒叠放顺序的基础上,将黄色糖果盒移出
看到这个问题后,你的第一个想法是什么
其实,仔细分析这个问题的思路还是比较清晰的,无非就是:
1、用一个栈存放我本来的糖果盒;
//根据数量创建糖并且放到糖盒
2、遍历出糖果盒,将从栈中筛选出黄色糖果盒;
3、将筛选出来的糖果盒放到另一个栈中;
4、由于不能改变糖果盒叠放次序,所以将我之前的栈清空,将第二栈中的数据遍历回第一个栈
在解决这个问题前,把我们需要用的栈的基本方法简单例举如下:
前面我们已经梳理过佩兹糖果盒盒的步骤现在我简单将下面代码解释一下:
box就是之前所说的装糖果盒的第一个栈,buffer是暂存删除后糖果盒的第二个栈其他的想必也不用峩多说了。
//根据数量创建糖并且放到糖盒
发布了45 篇原创文章 · 获赞 64 · 访问量 5万+