๐ฉ FIFO (First In First Out)
๐ฉ BFS (๋๋น์ฐ์ ํ์) ์์ ํ์ฉ
ํ์ ํ๋ณด ์ค์์ ํญ์ ๊ฐ์ฅ ์ค๋๋ ๊ฒ์ ์ ํ
๐ฉ <queue> ํค๋ ์ถ๊ฐ
๐ฉ ์ฃผ์ ๋์
enqueue : ์ฝ์
dequeue : ์ถ์ถ
peek : ์ถ์ถํ ๋ฐ์ดํฐ์ ๊ฐ์ ์ ์ ์์
๐ฉ๋ฐ์ดํฐ ์ถ๊ฐ/์ญ์ ๋ฐฉํฅ์ด ๋ฐ๋
1 : ์ฝ์ ์ฐ์ฐ๋ง ๋ฐ์ (๊ฐ์ฅ ์์ ์ถ๊ฐ๋จ)
2 : ์ญ์ ์ฐ์ฐ๋ง ๋ฐ์
๐ฉ ์ค๊ฐ์ ์๋ ๋ฐ์ดํฐ์ ์ ๊ทผ ๋ถ๊ฐ
ํ์ํ ๋ฐ์ดํฐ๊ฐ ๋์ฌ ๋๊น์ง dequeue
๋ฉค๋ฒ ํจ์ | ๊ธฐ๋ฅ |
q.size() | q์ ์ฌ์ด์ฆ(๋ฌผ๋ฆฌ์ ์ธ ์ ์ฅ ์ฉ๋์ด ์๋ ์์์ ๊ฐ์)๋ฅผ ๋ฆฌํด |
q.empty() | q์ ์ฌ์ด์ฆ๊ฐ 0์ธ์ง ์๋์ง๋ฅผ ํ์ธ |
q.front() | q์ ๊ฐ์ฅ ๋จผ์ ๋ค์ด๊ฐ ์์๋ฅผ ๋ฆฌํด |
q.back() | q์ ๊ฐ์ฅ ๋์ค์ ๋ค์ด๊ฐ ์์๋ฅผ ๋ฆฌํด |
q.push(val) | q์ ๋ค์ val๋ฅผ ์ถ๊ฐ |
q.pop() | q์ ๊ฐ์ฅ ๋จผ์ ๋ค์ด๊ฐ ์์๋ฅผ ์ญ์ |
queue<pair<int,int>> q;
q.push(make_pair(1,2));
int a = 2, b = 3;
pair<int,int> p = make_pair(a,b);
q.push(p);
cout << q.front().first << ' ' << q.front().second; // 1 2
cout << q.back().first << ' ' << q.back().second; // 2 3
//q๊ฐ ๋น์ด์์ง ์์ ๋์
while(!q.empty())
{
pair<int,int> n = q.front();
q.pop();
cout << n.first << ' ' << n.second << '\n'; // 1 2
// 2 3
}
cout << q.size(); // 0
q.push(make_pair(4,5));
q.push(make_pair(5,6));
queue<pair<int,int>> emt;
swap(q, emt);
cout << q.size(); // 0
์์ฃผ ์ฐ์ด์ง ์์ง๋ง, vector์ ๋ฌ๋ฆฌ queue๋ clear() ๋ฉค๋ฒ ํจ์๊ฐ ์์ผ๋ฏ๋ก, swap์ด๋ผ๋ ํจ์๋ฅผ ์ด์ฉํด clear()ํ๊ณ ์ ํ๋ queue๋ฅผ ๋น queue์ swapํด์ค์ผ๋ก์จ clear()์ ๊ฐ์ ํจ๊ณผ๋ฅผ ๋ผ ์ ์๋ค. ์ด๋ ๊ฒ swap์ ์ด์ฉํ๋ ๊ฒ์ด queue๊ฐ ๋น ๋๊น์ง ์์๋ฅผ pop()ํ๋ ๊ฒ๋ณด๋ค ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ์์๋๋ ๊ฒ์ด ์ข๋ค.
๐ ์ํํ
๋ฐฐ์ด์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ๊ณ ์๋จ
์ํํ๋ ํ์ดํ์ ์ ๊ตฌ์ ์ถ๊ตฌ ๋ถ๋ถ์ ์ฐ๊ฒฐ์ํจ ํํ
์ฐ๊ฒฐ๋ ๋ถ๋ถ์ ๋ฐ์ดํฐ ๊ณต๊ฐ์ ์ฐ์์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ๋๋จธ์ง ์ฐ์ฐ์ ํ์ฉ
'๐ฉโ๐ป ํ๋ก๊ทธ๋๋ฐ > โจ ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํด์ ํ ์ด๋ธ(Hash Table) (1) | 2024.04.12 |
---|---|
์คํ(Stack) (0) | 2024.04.12 |
๋ฆฌ์คํธ(List) (0) | 2024.04.11 |
๋ฐฐ์ด(Array) (0) | 2024.04.11 |
์ค๋ ๋ ํธ๋ฆฌ (0) | 2024.04.03 |