随心情更新的学习笔记——JS代码之栈的佩兹的糖果盒
这是有上期,没下期,学习看心情,更新看随机的老王的学习笔记,好好看,没有下期了……
佩兹的糖果盒
现实生活中栈的一个例子是佩兹糖果盒。想象一下你有一盒佩兹糖果,里面塞满了红色、黄色和白色的糖果,但是你不喜欢黄色的糖果。使用栈(有可能用到多个栈)写一段程序,在不改变盒内其他糖果叠放顺序的基础上,将黄色糖果移出。
我们首先写个函数用来随机生成颜色,push到栈中去。
function input(stack) {for (var i=0;i<10;i++){var random = Math.floor(Math.random()*3);if(random==0){stack.push("红");}else if(random==1){stack.push("白");}else{stack.push("黄");}}}
要完成佩兹糖果盒我们需要两个栈才能完成,一个是装着糖果的盒子,另一个是空盒子用来腾糖果用的。
我们遍历糖果盒(栈1),每当遇到我们不喜欢的颜色的时候就扔掉(pop()方法),遇到喜欢的颜色,我们就取出,放到空盒子里,然后在遍历原来的那个空盒子(栈2),把其中的糖果放到原先的糖果盒(栈1)中去,这样糖果盒中糖果的顺序就和原来的一样了。
function pickOut(stack1,stack2) {while(!stack1.empty()){if(stack1.peek()=="黄"){stack1.pop();}else{stack2.push(stack1.pop());}}while (!stack2.empty()){stack1.push(stack2.pop());}}
######################################附上完整代码########################################
function input(stack) {for (var i=0;i<10;i++){var random = Math.floor(Math.random()*3);if(random==0){stack.push("红");}else if(random==1){stack.push("白");}else{stack.push("黄");}}}function pickOut(stack1,stack2) {while(!stack1.empty()){if(stack1.peek()=="黄"){stack1.pop();}else{stack2.push(stack1.pop());}}while (!stack2.empty()){stack1.push(stack2.pop());}}var stack1 = new Stack();var stack2 = new Stack();stack1.peek();input(stack1);stack1.forEach(function (item) {console.log(item);});pickOut(stack1,stack2);console.log("丢掉黄色后:");stack1.forEach(function (item) {console.log(item);});
#########################################老师的代码###############################################
//糖的数量var num = 50;//创建糖盒var box= new Stack();//糖的数组var sugars = ['红','黄','白'];//根据数量创建糖,并且放到糖盒for(var i=0;i<num;i++){var random = Math.floor(Math.random()*3);box.push(sugars[random]);}//糖盒里面糖的顺序box.forEach(function (item) {console.log(item);})//糖盒的缓存var buffer = new Stack();//遍历糖盒里面的糖,把非黄色的糖按照顺序放到新的糖盒box.forEach(function (sugar) {if(sugar!='黄'){buffer.push(sugar);}})//老糖盒清空box.clear();//把新糖盒的糖按照顺序返回老糖盒var buffer = new Stack();buffer.forEach(function (sugar) {box.push(sugar);})console.log("#############");box.forEach(function (item) {console.log(item);})
注明,其中的栈的代码用的是随心情更新的学习笔记——JS代码之链表解决括号不匹配中最后附上的那段代码,完全可以用自己的代码。
随心情更新的学习笔记——JS代码之栈的佩兹的糖果盒相关推荐
- 【js数据结构】栈解决佩兹糖果盒问题
现实生活中栈的一个例子是佩兹糖果盒. 想象一下你有一盒佩兹糖果, 里面塞满了红色. 黄色和白色的糖果, 但是你不喜欢黄色的糖果. 使用栈( 有可能用到多个栈) 写一段程序, 在不改变盒内其他糖果叠放顺 ...
- (实验38)单片机,STM32F4学习笔记,代码讲解【SD卡实验】【正点原子】【原创】
文章目录 其它文章链接,独家吐血整理 实验现象 主程序 SD卡驱动程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] ( ...
- (实验37)单片机,STM32F4学习笔记,代码讲解【内存管理实验】【正点原子】【原创】
文章目录 其它文章链接,独家吐血整理 实验现象 主程序 内存池初始化程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] ...
- openCV4.0 C++ 快速入门30讲学习笔记(自用 代码+注释)详细版
课程来源:哔哩哔哩 环境:OpenCV4.5.1 + VS2019 目录 002.图像色彩空间转换 003.图像对象的创建与赋值 004.图像像素的读写操作 005.图像像素的算术操作(加减乘除4种不 ...
- 前端学习:学习笔记(JS部分)
前端学习:学习笔记(JS部分) 前端学习:JS学习总结(图解) JS的简介 JS基本语法 JS内置对象 JS的函数 JS的事件 JS的BOM JS的DOM JS的简介 新建步骤 <body ...
- (实验50)单片机,STM32F4学习笔记,代码讲解【串口IAP实验】【正点原子】【原创】
文章目录 ❤2023重新理解记录 其它文章链接,独家吐血整理 实验现象 主程序 IAP初始化程序 代码讲解 文章目录 ❤2023重新理解记录 其它文章链接,独家吐血整理 实验现象 主程序 IAP初始化 ...
- (实验12)单片机,STM32F4学习笔记,代码讲解【OLED显示实验】【正点原子】【原创】
文章目录 其它文章链接,独家吐血整理 实验现象 主程序 OLED初始化程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] ...
- (实验15)单片机,STM32F4学习笔记,代码讲解【RTC实时时钟实验】【正点原子】【原创】
文章目录 其它文章链接,独家吐血整理 实验现象 主程序 RTC初始化程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] ...
- (实验39)单片机,STM32F4学习笔记,代码讲解【FATFS实验】【正点原子】【原创】
文章目录 其它文章链接,独家吐血整理 实验现象 主程序 FATFS初始化程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创 ...
- (实验55)单片机,STM32F4学习笔记,代码讲解【网络通信实验】【正点原子】【原创】
文章目录 其它文章链接,独家吐血整理 实验现象 主程序 LWIP初始化程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] ...
最新文章
- linux signal函数用法,linux信号机制之sigaction构造体浅析,signal 函数,信号捕捉.
- python 三元表达式 if for 构建List 进阶用法
- 【机器学习】Github8.9K,目前最佳模型解释器-LIME!
- 雨棚板弹性法计算简图_钢结构工程量计算4点注意事项,还不来看?
- django第二个项目--使用模板做一个站点访问计数器
- 2016 博客导读总结 amp; 个人感悟
- potplayer播放器的下载与截图配置
- php mysql 框架 php5.2_简单快速安装Apache+PHP+MySql服务环境(四)—— 将php版本升级到7.2...
- 没一个能打的!端午档电影齐扑街:3天票房不及8亿
- 顶级程序员收藏的数学书
- ubuntu18.04 linux journalctl 命令
- 搭建服务器中转视频加速,高清视频站服务器的秘密诀窍:G口独享带宽不限流量+高速SSD...
- 微软产品大升级:Surface Pro 6、Studio 2、Laptop 2 重磅来袭
- 2021年育婴员(五级)考试试卷及育婴员(五级)考试技巧
- python常用写法
- rstudio的数据集怎么建立和保存_在R Studio中保存
- vi 编辑器的使用 笔记
- 三个思维结构:黄金圈法则、金字塔结构、PREP结构
- c语言的if指令表示,if(赋值语句)
- 张近东的大商之道:企业价值在于“为别人所用” | 一点财经
热门文章
- python 华为交换机自动配置_对python连接华为交换机批量配置优化
- MSP-FET-430UIF无法使用
- java火焰纹章攻略女神之剑_火焰纹章风花雪月图文攻略 主线流程+角色培养+转职系统 白云之章女神再生仪式②-游侠网...
- 计算机关机界面卡住,Win7关机缓慢,关机后一直卡在正在关机界面
- 2353410-06-5,TCO-PEG8-TFP ester单分散交联剂,含有TCO部分和PFP酯
- C++中带.h与不带.h的头文件
- 如何让ie窗口显示到最前面
- 计算机英语200心得体会,学英语的心得体会作文200字作文:学习英语的感受的英语作文(100~120词)...
- jquery按钮加载动画插件loda-button
- 77个数据科学家常见面试题