这是有上期,没下期,学习看心情,更新看随机的老王的学习笔记,好好看,没有下期了……

佩兹的糖果盒

现实生活中栈的一个例子是佩兹糖果盒。想象一下你有一盒佩兹糖果,里面塞满了红色、黄色和白色的糖果,但是你不喜欢黄色的糖果。使用栈(有可能用到多个栈)写一段程序,在不改变盒内其他糖果叠放顺序的基础上,将黄色糖果移出。

我们首先写个函数用来随机生成颜色,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代码之栈的佩兹的糖果盒相关推荐

  1. 【js数据结构】栈解决佩兹糖果盒问题

    现实生活中栈的一个例子是佩兹糖果盒. 想象一下你有一盒佩兹糖果, 里面塞满了红色. 黄色和白色的糖果, 但是你不喜欢黄色的糖果. 使用栈( 有可能用到多个栈) 写一段程序, 在不改变盒内其他糖果叠放顺 ...

  2. (实验38)单片机,STM32F4学习笔记,代码讲解【SD卡实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象 主程序 SD卡驱动程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] ( ...

  3. (实验37)单片机,STM32F4学习笔记,代码讲解【内存管理实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象 主程序 内存池初始化程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] ...

  4. openCV4.0 C++ 快速入门30讲学习笔记(自用 代码+注释)详细版

    课程来源:哔哩哔哩 环境:OpenCV4.5.1 + VS2019 目录 002.图像色彩空间转换 003.图像对象的创建与赋值 004.图像像素的读写操作 005.图像像素的算术操作(加减乘除4种不 ...

  5. 前端学习:学习笔记(JS部分)

    前端学习:学习笔记(JS部分) 前端学习:JS学习总结(图解)    JS的简介 JS基本语法 JS内置对象 JS的函数 JS的事件 JS的BOM JS的DOM JS的简介 新建步骤 <body ...

  6. (实验50)单片机,STM32F4学习笔记,代码讲解【串口IAP实验】【正点原子】【原创】

    文章目录 ❤2023重新理解记录 其它文章链接,独家吐血整理 实验现象 主程序 IAP初始化程序 代码讲解 文章目录 ❤2023重新理解记录 其它文章链接,独家吐血整理 实验现象 主程序 IAP初始化 ...

  7. (实验12)单片机,STM32F4学习笔记,代码讲解【OLED显示实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象 主程序 OLED初始化程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] ...

  8. (实验15)单片机,STM32F4学习笔记,代码讲解【RTC实时时钟实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象 主程序 RTC初始化程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] ...

  9. (实验39)单片机,STM32F4学习笔记,代码讲解【FATFS实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象 主程序 FATFS初始化程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创 ...

  10. (实验55)单片机,STM32F4学习笔记,代码讲解【网络通信实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象 主程序 LWIP初始化程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] ...

最新文章

  1. linux signal函数用法,linux信号机制之sigaction构造体浅析,signal 函数,信号捕捉.
  2. python 三元表达式 if for 构建List 进阶用法
  3. 【机器学习】Github8.9K,目前最佳模型解释器-LIME!
  4. 雨棚板弹性法计算简图_钢结构工程量计算4点注意事项,还不来看?
  5. django第二个项目--使用模板做一个站点访问计数器
  6. 2016 博客导读总结 amp; 个人感悟
  7. potplayer播放器的下载与截图配置
  8. php mysql 框架 php5.2_简单快速安装Apache+PHP+MySql服务环境(四)—— 将php版本升级到7.2...
  9. 没一个能打的!端午档电影齐扑街:3天票房不及8亿
  10. 顶级程序员收藏的数学书
  11. ubuntu18.04 linux journalctl 命令
  12. 搭建服务器中转视频加速,高清视频站服务器的秘密诀窍:G口独享带宽不限流量+高速SSD...
  13. 微软产品大升级:Surface Pro 6、Studio 2、Laptop 2 重磅来袭
  14. 2021年育婴员(五级)考试试卷及育婴员(五级)考试技巧
  15. python常用写法
  16. rstudio的数据集怎么建立和保存_在R Studio中保存
  17. vi 编辑器的使用 笔记
  18. 三个思维结构:黄金圈法则、金字塔结构、PREP结构
  19. c语言的if指令表示,if(赋值语句)
  20. 张近东的大商之道:企业价值在于“为别人所用” | 一点财经

热门文章

  1. python 华为交换机自动配置_对python连接华为交换机批量配置优化
  2. MSP-FET-430UIF无法使用
  3. java火焰纹章攻略女神之剑_火焰纹章风花雪月图文攻略 主线流程+角色培养+转职系统 白云之章女神再生仪式②-游侠网...
  4. 计算机关机界面卡住,Win7关机缓慢,关机后一直卡在正在关机界面
  5. 2353410-06-5,TCO-PEG8-TFP ester单分散交联剂,含有TCO部分和PFP酯
  6. C++中带.h与不带.h的头文件
  7. 如何让ie窗口显示到最前面
  8. 计算机英语200心得体会,学英语的心得体会作文200字作文:学习英语的感受的英语作文(100~120词)...
  9. jquery按钮加载动画插件loda-button
  10. 77个数据科学家常见面试题