【第四天 - Queue 介绍】

Q1. Queue是什麽?

  • 与 Stack 一样,是一种资料结构的概念,假设有一个容器是装马克杯的盒子 (从这个盒子下方拿东西,有点类似饮水机旁边会放的下落式纸杯架)
    • 盒子
  • 与 Stack 举例一样,我们依序将小明、小美、小雅的马克杯,从上方放入盒子中
  • 课间小 Q&A: 你现在要从盒子中取出一个马克杯,请问你会拿到谁的马克杯 ? (注意,Stack 的盒子只有一个开口,只能从上方拿,Queue 只能从下方拿)
  • ANS:盒子内的杯子排序预期是如下图,所以你从盒子下方取,会拿到最下面的杯子,也就是小明的杯子
  • 杯子顺序
  • 被子小明
  • 也就是说,这种 Queue概念,最先放的杯子,会最先拿起来,最晚放的杯子,最後才能拿到,也就是「先进先出」「後进後出」的概念 ( 英文称为 First-In-First-Out ),这种概念就很像我们平常在排队的概念,先到的人会先排到

Q2. 学会 Queue 概念可以做什麽?

  • 需要依序执行的时候
    • 抢课系统 (先抢先赢)
    • 点餐系统 (先排队点餐的人先做餐点)

Lab. 明天要解的题目:232 Implement Queue using Stacks

题目连结:https://leetcode.com/problems/implement-queue-using-stacks/

题目叙述:

  • 使用两个 stack 完成 Queue 的概念

  • 要有以下几个功能

    • push:把资料放入 Queue
    • peek:看排队最前面的是谁 (不会把东西拿出来)
    • pop:把排队最前面的拿出来
    • empty:检查 stack 是不是空的
  • 题目叙述

  • 程序

  • 测资的 Input/Output

    • 实作完的 class,可以被 new 出来使用即可,不会真的有 ["MyQueue", "push", "push", "peek", "pop", "empty"] 跟 [[], [1], [2], [], [], []] 这种字串输入
    • I/O
  • 题目的条件

    • 放入的资料只会是数字 1~9
    • 最多执行100次 function
    • 只会在 Queue 里面有资料的情况,执行 pop 跟 peek
    • 题目限制
  • 看完题目,需要思考的条件:

    • 如何用两个 stack 的盒子,模拟出 Queue 的行为?
    • 如果不使用两个 stack 来做,该如何实作 Queue ?
  • 明天会分析该题 python 不同解法的优点,希望大家今天可以多先自己想一下这题,如果是你,你的思考逻辑是什麽?


<<:  Day 04 建立关键字广告前,你所要谨记在心的事

>>:  Genero Package 套件安装与更新方法

DAY 30 - 殭屍女孩 (3) 完

大家好~ 我是五岁~ 今天来把殭屍女孩完成吧~~ 话说本日的我选颜色有点失常阿~ 哈哈哈哈阿~~ 不...

[Day17] Flutter with GetX binding (一) 元件与属性绑定

这篇位大家介绍Getx的响应式更新,Widget与属性绑定(int String bool List...

[ Day 11 ] - DOM

DOM DOM 是什麽呢? DOM(Document Object Model) 当浏览器进入网页时...

iOS App开发 OC 第三天, 记忆体管理

tags: OC 30 day 原文位置网址 Objective-C里的记忆体管理主要有两种: Ga...

DAY12-JavaScript(二)

前言: 昨天我们介绍了JavaScript几个最基本的用法,今天我打算来介绍JavaScript是...