Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コンピュータサイエンスにおけるキューとスタックの解説
Search
Satoshi Kaneyasu
January 28, 2024
Programming
0
1.2k
コンピュータサイエンスにおけるキューとスタックの解説
Satoshi Kaneyasu
January 28, 2024
Tweet
Share
More Decks by Satoshi Kaneyasu
See All by Satoshi Kaneyasu
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
150
お客様とSIerではじめたスクラム開発(で得た学び)
satoshi256kbyte
0
89
From Pipenv to UV: Migrating to a Monorepoto Tame a Complex Repository
satoshi256kbyte
0
32
複雑化したリポジトリをなんとかした話 pipenvからuvによるモノレポ構成への移行
satoshi256kbyte
1
1.5k
ディレクトリ構成と設定ファイルから考えるSIerのVibe Coding
satoshi256kbyte
0
65
GitHubとGitLabとAWS CodePipelineでCI/CDを組み比べてみた
satoshi256kbyte
4
510
生産性の壁を越えろ! 何がなんでも計測する
satoshi256kbyte
1
54
オープンセミナー2025@広島「君はどこで動かすか?」アンケート結果
satoshi256kbyte
0
320
オープンセミナー2025@広島LT技術ブログを続けるには
satoshi256kbyte
0
210
Other Decks in Programming
See All in Programming
Deno Tunnel を使ってみた話
kamekyame
0
310
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
2.3k
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
160
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
650
CSC307 Lecture 03
javiergs
PRO
1
470
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
160
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.4k
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
310
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
580
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
200
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.5k
Featured
See All Featured
BBQ
matthewcrist
89
10k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
The SEO identity crisis: Don't let AI make you average
varn
0
47
Ethics towards AI in product and experience design
skipperchong
1
160
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
260
Design in an AI World
tapps
0
110
Rails Girls Zürich Keynote
gr2m
95
14k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Docker and Python
trallard
47
3.7k
The agentic SEO stack - context over prompts
schlessera
0
580
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
360
Transcript
コンピュータサイエンスにおける キューとスタックの解説 2024.01.31 SATOSHI KANEYASU
⾃⼰紹介 ⽒名︓兼安 聡 職種︓クラウドエンジニア 最近のお仕事︓DevOpsの推進 趣味︓サックス、筋トレ、CS ゲーム 資格︓ X(Twitter)︓@satoshi256kbyte 1/9
追加
はじめに • また情報処理技術者試験の季節が近づいてきてますね。 • 個⼈の感想ですが、勉強は意味を知らないと頭に⼊りません。 • 昔はピンとこなかった、キューをここ数年使いまくってるので、 その解説をします。 • ついでにスタックも解説します。
キュー(Queue)とスタック(Stack) • どちらもデータの格納・取り出し⽅法の⽤語 • それぞれ、データの格納・取り出しのルールが決まっている • ルールが決まっているのがポイント • ルールが決まっている=保証されている
キュー(Queue) • 先⼊れ先出し⽅と呼ばれるデータ格納⽅式 • First-In-First-Out、略してFIFO • 現実世界で⾔うと、病院の受付番号など • 病院に⾏く •
受付して、受付番号をもらう • 受付番号順に診察
キューは受付番号のようなもの
キューがなかったどうなるか︖ • 同時に対処できる数を超えて訪問者を受けいれてしまう • 訪問者がいつまで待てばいいのかわからない • ↑による焦りから更なる混雑を招く • 多少処理時間が伸びたとしても、 負荷を平準化し安定化させることが必要なシチュエーションがある
スタック(Stack) • 後⼊れ先出し⽅と呼ばれるデータ格納⽅式 • Last-In-First-Out、略してLIFO • 現実世界で例えるのは難しい • ブラウザの戻る •
エディタのUndo機能 • プログラムでエラーが発⽣した時のスタックトレース
ブラウザの戻るの例 番号 訪問履歴 4 https://example.com/page2 3 https://example.com/page1 2 https://example.com/calendar 1
https://example.com 現在のページ︓https://example.com/page3
キューの使⽤例 – キュー未使⽤ DOWNLOAD Server • 画⾯の内容のPDFでダウンロードする機能を考える
キューの使⽤例 – DLする⼈が増えたら DOWNLOAD Server • 受け付けたら⼀気にPDFをDLさせる⽅式だと混雑しやすい • 受け付ける •
PDFを作成する • 受け付ける • PDFを作成する • 受け付ける • PDFを作成する • 受け付ける • PDFを作成する ❌ ❌ 重たい処理が、 同時発⽣する混雑する
キューの使⽤例 – 混雑は混雑を⽣む DOWNLOAD Server • 混雑が発⽣すると何度も試す⼈が増えて余計混雑を⽣む • 受け付ける •
PDFを作成する • 受け付ける • PDFを作成する • 受け付ける • PDFを作成する • 受け付ける • PDFを作成する ❌ ❌ ❌ ❌ ❌ ❌ ❌
キューの使⽤例 – キューを活⽤する Server • キューを活⽤してDOWNLOADの受付とPDF出⼒を分ける • 受け付ける • PDFを作成する
• 受け付ける • 受け付ける • 受け付ける キュー DOWNLOAD4 DOWNLOAD2 DOWNLOAD2 DOWNLOAD1 4 DOWNLOAD
キューの使⽤例 – システムを分ける Server • キューを活⽤してDOWNLOADの受付とPDF出⼒を分ける • 受け付ける • PDFを作成する
• 受け付ける • 受け付ける • 受け付ける キュー DOWNLOAD4 DOWNLOAD2 DOWNLOAD2 DOWNLOAD1 4 DOWNLOAD
まとめ • キューは先⼊れ先出し、スタックは後⼊れ先出し • 多数の⼈が使うシステムだと、キューはかなり有⽤ • クラウドとも相性が良い • クラウド絡めるとキューはめちゃめちゃ使います。 •
何に使うかわからない技術があれば教えてください できる限り答えられるようにします