or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
進階STL:
stack queue deque
2021/11/26 電算社第十堂社課
Stack & Queue
Stack
使用Stack的時候就像是疊盤子
每一個丟進stack的資料都是一個盤子
越早丟的資料會在越下面
並且要娶的時候只能取最上面那一個資料
–> 先進後出隊列(FILO)
Queue
Queue就像一個排隊的人龍
每一個你丟進去的資料就是一個排隊的人
越早丟的資料會在越前面
先排進隊伍的人會最先出來
–> 先進先出隊列(FIFO)
標頭檔:
宣告
一些功能
stack:
s.push()
s.top()
s.pop()
s.empty()
s.size()
queue:
q.push()
q.front()
q.back()
q.pop()
q.empty()
q.size()
size empty和 vector 的邏輯一樣
stack 的 top 和 pop 分別是對最晚進的元素取值和刪除
queue 的 front 和 pop 分別是對最早進的元素取值和刪除
慣用法
清空stack or queue
遍歷stack or queue
特點:
不能用
[]
取值(不支援random access)Deque:兩頭的Queue
(Double-ended Queue)
兩頭的queue
可以從前面來也可以從後面來
標頭檔
宣告
功能
dq.front()
dq.back()
dq.push_front()
dq.push_back()
dq.pop_front()
dq.pop_back()
dq.empty()
dq.size()
dq[]
缺點:
時間複雜度常數太大 (會運行得比較慢)
OJ練習
zerojudge b923 stack
zerojudge e447 queue練習
zerojudge c123 Rails
zerojudge e924 括號配對