[์๋ฃ๊ตฌ์กฐ] ๋ฑ(Deque)
๋ฑ(Deque)์ด๋?
์์ชฝ ๋์์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๊ฐ๋ฅํ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
์ ์ ์ ์ถ(FIFO), ํ์ ์ ์ถ(LIFO) ๊ฐ๋ ์ด ๋ชจ๋ ์ ์ฉ์ด ๋๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
Java์์ Deque์ java.util.Deque ์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํด ๊ตฌํํ ์ ์๋ค.
์ฅ์
๋ฐ์ดํฐ์ ์ฝ์ & ์ญ์ ๊ฐ ๋น ๋ฆ
ํฌ๊ธฐ๊ฐ ๊ฐ๋ณ์ ์
๋ฐ์ดํฐ๋ฅผ ์๋ค์์ ์ฝ์ & ์ญ์ ํ ์ ์์
index๋ก ์์ ์์ ์ ๊ทผ์ด ๊ฐ๋ฅํจ
๋จ์
deque์ ์ค๊ฐ์์์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ์ด๋ ต๋ค.
์ฌ์ฉ๋ฒ
Deque ๊ฐ์ฒด ์์ฑ
//import java.util.Deque;
//import java.util.LinkedList;
Deque<Integer> deque = new LinkedList<>();
์ ๋ถ๋ถ์ ๊ฐ ์ถ๊ฐํ๊ธฐ
deque.addFirst(1);
deque.offerFirst(2);
// [2, 1]
๋ท ๋ถ๋ถ์ ๊ฐ ์ถ๊ฐํ๊ธฐ
deque.addLast(1);
deque.add(2);
deque.offerLast(3);
deque.offer(4);
[1, 2, 3, 4]
add์ offer ๋ฉ์๋์ ์ฐจ์ด
add : illegalStateException์ ๋ฐ์์ํจ๋ค.
offer : ํ๊ฐ ๊ฐ๋์ฐจ์ ๋ ์ด์ ์ถ๊ฐํ ์ ์๋ ๊ฒฝ์ฐ false๋ฅผ ๋ฐํํ๊ณ , ์์๊ฐ ์ถ๊ฐ๋๋ฉด true๋ฅผ ๋ฐํํ๋ฉฐ ํน์ ์์ธ๋ฅผ throwํ์ง ์๋๋ค.
์ ๋ถ๋ถ ๊ฐ ์ญ์ ํ๊ธฐ
for(int i=1;i<=5;i++) {
deque.offer(i);
}
// [1, 2, 3, 4, 5]
deque.remove();
deque.removeFirst();
deque.pollFirst();
deque.poll();
// [5]
๋ท ๋ถ๋ถ ๊ฐ ์ญ์ ํ๊ธฐ
for(int i=1;i<=5;i++) {
deque.offer(i);
}
// [1, 2, 3, 4, 5]
deque.removeLast();
deque.pollLast();
// [1, 2, 3]
remove์ poll ๋ฉ์๋์ ์ฐจ์ด
remove : ๋น์ด์์ ๋ ์ญ์ ํ๋ฉด ์์ธ ๋ฐ์
poll : ๋น์ด์์ ๋ ์ญ์ ํ๋ฉด null ๋ฐํ
์ ๋ถ๋ถ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ (์ฝ๊ธฐ)
for (int i = 1; i <= 5; i++) {
deque.offer(i);
}
// [1, 2, 3, 4, 5]
int num1 = deque.getFirst(); // 1
int num2 = deque.peekFirst(); // 1
int num3 = deque.peek(); // 1
๋ท ๋ถ๋ถ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ (์ฝ๊ธฐ)
for (int i = 1; i <= 5; i++) {
deque.offer(i);
}
// [1, 2, 3, 4, 5]
int num1 = deque.getLast(); // 5
int num2 = deque.peekLast(); // 5
get๊ณผ peek ๋ฉ์๋์ ์ฐจ์ด
get : ํด๋น ๊ฐ์ returnํ๊ณ ์คํจ ์ Exception์ ๋ฐ์
peek : ํด๋น๊ฐ์ returnํ๊ณ ์คํจ์ null์ returnํ๋ค.
์ฐธ์กฐ
https://velog.io/@esun1903/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-Deque
[์๋ฃ๊ตฌ์กฐ] Deque(๋ฑ,๋ฐํฌ)
์๋ฃ๊ตฌ์กฐ์ ์ข ๋ฅ ์ค ํ๋์ธ ๋ฑ์ ๋ํด ์์๋ณด๊ณ , ๋ฌธ์ ์ ์ ์ฉํด๋ณด์์. ๐ฉ๐ป๐ป Deque ๐ ๋ชฉ์ฐจ โDeque ์ ์ ๐๐ปโ๏ธ Deque ๋ด์ฅ ํจ์ โจ ๋ฌธ์ ์ ์ ์ฉํด๋ณด๊ธฐ ์ฐ์ , ์ด ๋ธ๋ก๊ทธ๋ฅผ ๋ณด๋ฉด์ ๊ณต๋ถ
velog.io
https://adjh54.tistory.com/135#4)%20%EB%8D%B1(deque)-1
[Java/์๋ฃ๊ตฌ์กฐ๋ก ] ์ ํ๊ตฌ์กฐ ์ดํดํ๊ธฐ -1 : ํ(Queue), ์คํ(Stack), ๋ฑ(Deque)
ํด๋น ๊ธ์์๋ ์๋ฃ๊ตฌ์กฐ๋ก ์ค ์ ํ ๊ตฌ์กฐ์ธ ํ(Queue)์ ์คํ(Stack), ๋ฑ(Deque)์ ๋ํด์ ์ดํดํ๊ณ ์ธ์ ์ฌ์ฉํ๋ฉฐ ๊ฐ๊ฐ์ ์ฅ๋จ์ ์ด ๋ฌด์์ธ์ง์ ๋ํด ์์๋ณด๊ธฐ ์ํ ๊ธ์ ๋๋ค. 1) ์ ํ ๊ตฌ์กฐ(Linear Structure
adjh54.tistory.com