【js数据结构】栈解决佩兹糖果盒问题
现实生活中栈的一个例子是佩兹糖果盒。 想象一下你有一盒佩兹糖果, 里面塞满了红色、 黄色和白色的糖果, 但是你不喜欢黄色的糖果。 使用栈( 有可能用到多个栈) 写一段程序, 在不改变盒内其他糖果叠放顺序的基础上, 将黄色糖果移出
取糖果放入栈,糖果的顺序情况如下图:
解决此问题的思路是从放糖果的栈(stack)中,将不喜欢的糖果放在一个栈(getColorStack)里,将其他糖果放入一个栈(setColorAtack),最后取完糖果后,将盛装其他糖果的栈(setColorAtack)中的糖果逐个将其放入原来的栈(stack)中,其位置将不会变化。如下图所示:
那么对比一下原来的stack与函数处理过的stack
顺序没有改变!
实现代码如下,栈的构造函数见上篇文章:
var sweetBox = new Stack();
sweetBox.push('red');
sweetBox.push('yellow');
sweetBox.push('red');
sweetBox.push('yellow');
sweetBox.push('white');
sweetBox.push('yellow');
sweetBox.push('white');
sweetBox.push('yellow');
sweetBox.push('white');
sweetBox.push('red');function getColor(element, stack)
{var getColorStack = new Stack();var setColorStack =new Stack();while(stack.len()>0){if(stack.peek() == element){getColorStack.push(element);stack.pop();}else{setColorStack.push(stack.peek());stack.pop();}}while(setColorStack.len()>0){stack.push(setColorStack.peek());setColorStack.pop();}console.info(stack.peek());
}
getColor('red',sweetBox);
文章如有错误,望大家指出,小女子这厢有礼了 >.<
转载于:https://www.cnblogs.com/xiabaoying/p/6561066.html
【js数据结构】栈解决佩兹糖果盒问题相关推荐
- JS 数据结构之旅 :通过JS实现栈、队列、二叉树、二分搜索树、AVL树、Trie树、并查集树、堆
JS 数据结构之旅 栈 概念 栈是一个线性结构,在计算机中是一个相当常见的数据结构. 栈的特点是只能在某一端添加或删除数据,遵循先进后出的原则 实现 每种数据结构都可以用很多种方式来实现,其实可以把栈 ...
- 利用顺序栈解决括号匹配问题(c++)-- 数据结构
利用顺序栈解决括号匹配问题(c++)-- 数据结构 参考文章: (1)利用顺序栈解决括号匹配问题(c++)-- 数据结构 (2)https://www.cnblogs.com/yi2105/p/106 ...
- js实现栈、队列、链表数据结构
面试遇到的问题,当时有点懵 脑袋一片空白,面试完了想了下,我可能是傻了,明明在问这个问题之前面试官问了我字符串都有哪些操作方法!!!我是真鱼吧! 今天看了下<学习JavaScript数据结构与算 ...
- 数据结构链表之栈——解决括号匹配问题和逆波兰表达式求值问题——6
括号匹配问题和逆波兰表达式求值问题 基于上一节已经使用python代码对栈进行了简单的实现,这一节我们在其基础上解决两个常见的问题 案例 括号匹配问题(点我直接到代码实现) 逆波兰表达式求值问题(点我 ...
- 【从蛋壳到满天飞】JS 数据结构解析和算法实现-AVL树(一)
前言 [从蛋壳到满天飞]JS 数据结构解析和算法实现,全部文章大概的内容如下: Arrays(数组).Stacks(栈).Queues(队列).LinkedList(链表).Recursion(递归思 ...
- JS数据结构与算法_链表
上一篇:JS数据结构与算法_栈&队列 下一篇:JS数据结构与算法_集合&字典 写在前面 说明:JS数据结构与算法 系列文章的代码和示例均可在此找到 上一篇博客发布以后,仅几天的时间竟然 ...
- 【从蛋壳到满天飞】JS 数据结构解析和算法实现-哈希表
前言 [从蛋壳到满天飞]JS 数据结构解析和算法实现,全部文章大概的内容如下: Arrays(数组).Stacks(栈).Queues(队列).LinkedList(链表).Recursion(递归思 ...
- 【从蛋壳到满天飞】JS 数据结构解析和算法实现-堆和优先队列(一)
前言 [从蛋壳到满天飞]JS 数据结构解析和算法实现,全部文章大概的内容如下: Arrays(数组).Stacks(栈).Queues(队列).LinkedList(链表).Recursion(递归思 ...
- JS数据结构与算法 笔记
JS数据结构与算法笔记 前言:不定时更新说明 1. 栈(Stack) 1.1 基于数组实现栈 1.2 基于对象实现栈 1.3 基于链表实现栈 1.4 栈的简单应用 1.4.1 字符串中的括号匹配问题 ...
最新文章
- Android原生开发modules方式导入Unity问题汇总
- C++ Primer 5th笔记(2)chapter 2变量和基本类型:constexpr 、auto、类型别名、decltype
- Android监听安装卸载
- 虚拟桌面几个常见问题?
- Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser
- Redis持久化方式~RDB 持久化和AOF 持久化
- 52单片机iic读写c语言,如何52单片机的I2C读写24C08程序问题排查修改
- paip.提升效率---提升绑定层次--form绑定取代field绑定
- Sybase数据库应用系统调优的五大领域
- thinkphp js带参数跳转页面
- JavaScript写一个能遍历对象和数组的通用forEach函数
- (推荐)(提供下载)ORACLE常见问题一千问(不怕学不成、就怕心不诚!)
- 使用小波变换进行Pan和多光谱融合
- Monkey Test - 命令
- 怎么看vray渲染进度_3dmax渲染怎么看渲染时间
- Sqlite 对数据进行增删改查
- 91 个常见的 Laravel 面试题和答案
- Kyrie Irving邀请粉丝加入Lineage Logistics的Share A Meal运动,帮助受COVID-19疫情影响的人们
- 送快递到程序员,自学3年终于转行成功,薪资从5K涨到了12K
- 使用CSS画一个萌萌的大白