1๏ธโฃ LinkedList๋ฅผ ์ฌ์ฉํ Deque.
โLinkedList
โ ๋ โDeque
โ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค ์ค ํ๋๋ก, ์์ชฝ ๋์์ ์ฝ์
๊ณผ ์ญ์ ๊ฐ ๊ฐ๋ฅํ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๊ธฐ๋ฐ์ ์๋ฃ ๊ตฌ์กฐ์
๋๋ค.
โLinkedList
โ ๋ โDeque
โ ๋ฟ๋ง ์๋๋ผ โList
โ, โQueue
โ ์ธํฐํ์ด์ค๋ ๊ตฌํํ์ฌ ๋ค์ํ ํํ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
2๏ธโฃ ์ฃผ์ ํน์ง.
-
์ด์ค ๋ ํ : ์์ชฝ ๋์์ ์์๋ฅผ ์ถ๊ฐํ๊ณ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
-
์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ : ๊ฐ ๋ ธ๋๋ ์ด์ ๋ ธ๋์ ๋ค์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ ๊ฐ์ ํฌ์ธํฐ๋ฅผ ๊ฐ์ง๋๋ค.
-
๋น๋๊ธฐ์ : โ
LinkedList
โ ๋ ๋น๋๊ธฐ์ ์ผ๋ก ๋์ํ๋ฏ๋ก ๋๊ธฐํ๋ ํ๊ฒฝ์์ ์์ ํ์ง ์์ต๋๋ค.
3๏ธโฃ ์ฃผ์ ๋ฉ์๋.
์ฝ์ ์ฐ์ฐ.
-
โ
addFirst(E e)
โ : ์ง์ ๋ ์์๋ฅผ ๋ฑ์ ์์ชฝ์ ์ถ๊ฐํฉ๋๋ค. -
โ
addLast(E e)
โ : ์ง์ ๋ ์์๋ฅผ ๋ฑ์ ๋ค์ชฝ์ ์ถ๊ฐํฉ๋๋ค. -
โ
offerFirst(E e)
โ : ์ง์ ๋ ์์๋ฅผ ๋ฑ์ ์์ชฝ์ ์ถ๊ฐํฉ๋๋ค. -
โ
offerLast(E e)
โ : ์ง์ ๋ ์์๋ฅผ ๋ฑ์ ๋ค์ชฝ์ ์ถ๊ฐํฉ๋๋ค.
์ญ์ ์ฐ์ฐ.
-
โ
removeFirst()
โ : ๋ฑ์ ์์ชฝ์์ ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฐํํฉ๋๋ค. -
โ
removeLast()
โ : ๋ฑ์ ๋ค์ชฝ์์ ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฐํํฉ๋๋ค. -
โ
pollFirst()
โ : ๋ฑ์ ์์ชฝ์์ ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฐํํฉ๋๋ค. -
โ
pollLast()
โ : ๋ฑ์ ๋ค์ชฝ์์ ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฐํํฉ๋๋ค.
์กฐํ ์ฐ์ฐ.
-
โ
getFirst()
โ : ๋ฑ์ ์์ชฝ์ ์๋ ์์๋ฅผ ๋ฐํํฉ๋๋ค. -
โ
getLast()
โ : ๋ฑ์ ๋ค์ชฝ์ ์๋ ์์๋ฅผ ๋ฐํํฉ๋๋ค. -
โ
peekFirst()
โ : ๋ฑ์ ์์ชฝ์ ์๋ ์์๋ฅผ ๋ฐํํฉ๋๋ค. -
โ
peekLast()
โ : ๋ฑ์ ๋ค์ชฝ์ ์๋ ์์๋ฅผ ๋ฐํํฉ๋๋ค.
์คํ ์ฐ์ฐ.
-
โ
push(E e)
โ : ์คํ์ ๋งจ ์์ ์์๋ฅผ ์ถ๊ฐํฉ๋๋ค.(FIFO, First In First Out) -
โ
pop()
โ : ์คํ์ ๋งจ ์์ ์๋ ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฐํํฉ๋๋ค.(LIFO, Last In First Out)
4๏ธโฃ ์๊ฐ ๋ณต์ก๋
-
์ฝ์
๊ณผ ์ญ์ ์ฐ์ฐ : โ
addFirst
โ, โaddLast
โ, โremoveFirst
โ, โremoveLast
โ, โofferFirst
โ, โofferLast
โ, โpollFirst
โ, โpollLast
โ ๋ฑ์ ์ฐ์ฐ์ O(1)์ ๋๋ค.- ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์์ชฝ ๋์์์ ์ฝ์ ๊ณผ ์ญ์ ๋ ์์ ์๊ฐ ๋ด์ ์ํ๋ฉ๋๋ค.
-
์กฐํ ์ฐ์ฐ : โ
getFirst
โ, โgetLast
โ, โpeekFirst
โ, โpeekLast
โ ๋ฑ์ ์ฐ์ฐ์ O(1)์ ๋๋ค. -
์์ ์ ๊ทผ ์ฐ์ฐ( **โ
get(int index)
โ, โset(int index, E element)
โ ๋ฑ) :** ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ ๊ทผ ์ฐ์ฐ์ ๋ฆฌ์คํธ์ ์ค๊ฐ์ ์๋ ์์๋ฅผ ์ฐพ๊ธฐ ์ํด ๋ฆฌ์คํธ๋ฅผ ์ํํด์ผ ํ๋ฏ๋ก O(n) ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค.
5๏ธโฃ ์ฝ๋ ์์.
์๋ ์ฝ๋๋ โLinkedList
โ ๋ฅผ โDeque
โ ๋ก ์ฌ์ฉํ๋ ์์ ์
๋๋ค.
import java.util.Deque;
import java.util.LinkedList;
public class LinkedListDequeExample {
public static void main(String[] args) {
// LinkedList๋ก Deque ์์ฑ
Deque<Integer> deque = new LinkedList<>();
// ์์ ์ฝ์
deque.addFirst(1);
deque.addLast(2);
deque.offerFirst(0);
deque.offerLast(3);
// ์์ ์กฐํ
System.out.println("First element: " + deque.getFirst());
System.out.println("Last element: " + deque.getLast());
System.out.println("Peek first element: " + deque.peekFirst());
System.out.println("Peek last element: " + deque.peekLast());
// ์์ ์์
System.out.println("Removed first element: " + deque.removeFirst());
System.out.println("Removed last element: " + deque.removeLast());
System.out.println("Poll first element: " + deque.pollFirst());
System.out.println("Poll last element: " + deque.pollLast());
// ๋ฑ์ ํฌ๊ธฐ์ ๋น์ด ์๋์ง ์ฌ๋ถ ํ์ธ
System.out.println("Deque size: " + deque.size());
System.out.println("Is deque empty? " + deque.isEmpty());
// ์คํ ์ฐ์ฐ.
deque.push(4);
System.out.println("Pushed element: " + deque.peekFirst());
System.out.println("Popped element: " + deque.pop());
}
}
/*
=== ์ถ๋ ฅ ===
First element: 0
Last element: 3
Peek first element: 0
Peek last element: 3
Removed first element: 0
Removed last element: 3
Poll first element: 1
Poll last element: 2
Deque size: 0
Is deque empty? true
Pushed element: 4
Popped element: 4
*/
๐โโ๏ธ ์ค๋ช .
-
-
๋ฒ ์ด ์ด๊ธฐํ : โ
DEFAULT_CAPACITY
โ ํฌ๊ธฐ์ ๋ฐฐ์ด์ ์ด๊ธฐํํ๊ณ , โhead
โ, โtail
โ, โsize
โ ๋ณ์๋ฅผ ์ด๊ธฐํ ํฉ๋๋ค.
-
๋ฒ ์ด ์ด๊ธฐํ : โ
-
-
์ฝ์
์ฐ์ฐ( **โ
addFirst
โ, โaddLast
โ) :** ์์๋ฅผ ๋ฑ์ ์ฒซ ๋ฒ์งธ ๋๋ ๋ง์ง๋ง์ ์ถ๊ฐํฉ๋๋ค.
-
์ฝ์
์ฐ์ฐ( **โ
-
-
์ญ์ ์ฐ์ฐ( **โ
removeFirst
โ, โremoveLast
โ) :** ์ฒซ ๋ฒ์งธ ์์์ ๋ง์ง๋ง ์์๋ฅผ ๊ฐ๊ฐ ์ ๊ฑฐํฉ๋๋ค.
-
์ญ์ ์ฐ์ฐ( **โ
-
-
์กฐํ ์ฐ์ฐ( **โ
getFirst
โ, โgetLast
โ, โpeekFirst
โ, โpeekLast
โ) :** ์ฒซ ๋ฒ์งธ ์์์ ๋ง์ง๋ง ์์๋ฅผ ๋ฐํํฉ๋๋ค.
-
์กฐํ ์ฐ์ฐ( **โ
-
-
๊ธฐํ ๋ฉ์๋ : โ
size
โ ์ โisEmpty
โ ๋ฉ์๋๋ ๋ฑ์ ํฌ๊ธฐ์ ๋น์ด ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํํฉ๋๋ค.
-
๊ธฐํ ๋ฉ์๋ : โ
-
-
์คํ ์ฐ์ฐ( **โ
push
โ, โpop
โ) :** ์คํ์ ๋งจ ์์ ์์๋ฅผ ์ถ๊ฐํ๊ณ , ์คํ์ ๋งจ ์์ ์๋ ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฐํํฉ๋๋ค.
-
์คํ ์ฐ์ฐ( **โ
์ ์์ ์ฝ๋์์๋ โ
LinkedList
โ ๋ฅผ โDeque
โ ๋ก ์ฌ์ฉํ์ฌ ๋ค์ํ ์ฐ์ฐ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
โLinkedList
โ ๋ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์์ชฝ ๋์์์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๋น ๋ฅด๊ณ ํจ์จ์ ์ ๋๋ค.