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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Satoshi Kaneyasu
January 28, 2024
Programming
1.2k
0
Share
コンピュータサイエンスにおけるキューとスタックの解説
Satoshi Kaneyasu
January 28, 2024
More Decks by Satoshi Kaneyasu
See All by Satoshi Kaneyasu
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
2
150
Amazon_Cognito_で構築する_スケーラブルな_Web_アプリケーション__シングルページ_Web_アプリケーションに認証を組み込む_.pdf
satoshi256kbyte
0
20
人間とAI、どちらが書いたコードもCI/CDでチェックしてみよう
satoshi256kbyte
0
23
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
230
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎
satoshi256kbyte
1
37
人間とAI、どちらが書いたコードもCICDでチェックしてみよう
satoshi256kbyte
1
36
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
490
お客様とSIerではじめたスクラム開発(で得た学び)
satoshi256kbyte
0
110
From Pipenv to UV: Migrating to a Monorepoto Tame a Complex Repository
satoshi256kbyte
0
62
Other Decks in Programming
See All in Programming
The free-lunch guide to idea circularity
hollycummins
0
420
KagglerがMixSeekを触ってみた
morim
0
370
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun9
0
340
ドメインイベントでビジネスロジックを解きほぐす #phpcon_odawara
kajitack
2
120
AI時代の脳疲弊と向き合う ~言語学としてのPHP~
sakuraikotone
1
1.8k
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
6k
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
4.7k
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
190
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
2
350
感情を設計する
ichimichi
5
1.3k
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
550
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
170
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
93
Mind Mapping
helmedeiros
PRO
1
150
How to Ace a Technical Interview
jacobian
281
24k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
140
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Automating Front-end Workflow
addyosmani
1370
200k
Are puppies a ranking factor?
jonoalderson
1
3.2k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
880
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
260
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
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
まとめ • キューは先⼊れ先出し、スタックは後⼊れ先出し • 多数の⼈が使うシステムだと、キューはかなり有⽤ • クラウドとも相性が良い • クラウド絡めるとキューはめちゃめちゃ使います。 •
何に使うかわからない技術があれば教えてください できる限り答えられるようにします