스택: LIFO구조. 마지막에 저장된 것을 제일 먼저 꺼내게 된다. (배열로 구현하는게 유리함)
큐(Queue): FIFO구조. 제일 먼저 저장한 것을 제일 먼저 꺼내게 된다. (링크드 리스트로 구현하는게 유리함)
스택과 큐(Stack & Queue)의 메서드
Stack (Stack st = new Stack();)
메서드 | 설명 |
boolean empty() | stack이 비어있는지 알려준다 |
Object peek() | Stack의 맨 위에 저장된 객체를 반환. pop()과 달리 Stack에서 객체를 꺼내지는 않음.(비었을 때는 EmptyStackException발생) |
Object pop(Obeject item) | Stack의 맨 위에 저장된 객체를 꺼낸다. (비었을 때는 EmptyStackException발생) |
Object push(Object item) | Stack에 객체(item)를 저장한다. |
int search(Object o) | Stack에서 주어진 객체(o)를 찾아서 그 위치를 반환. 못찾으면 -1을 반환. (배열과 달리 위치는 0이 아닌 1부터 시작) |
Queue (인터페이스로 정의되어있음.)
메서드 | 설 명 |
boolean add(Object o) | 지정된 객체를 Queue에 추가한다. 성공하면 true를 반환. 저장공간이 부족하면 IllegalStateException발생 |
Object remove() | Queue에서 객체를 꺼내 반환. 비어있으면 NoSuchElementException발생 |
Object element() | 삭제없이 요소를 읽어온다. peek와 달리 Queue가 비었을 때 NoSuchElementException발생 |
boolean offer(Object o) | Queue에 객체를 저장. 성공하면 true. 실패하면 false를 반환 |
Object poll() | Queue에서 객체를 꺼내서 반환. 비어있으면 null을 반환 |
Object peek() | 삭제없이 요소를 읽어 온다. Queue가 비어있으면 null을 반환 |
Queue에 기능을 갖고 있는 객체를 쓰고싶다면
1. Queue를 직접 구현한다.
2. Queue를 구현한 클래스를 사용한다.
스택과 큐(Stack & Queue)의 활용
스택 활용 예 - 수식 계산, 수식괄호검사, 워드프로세서의 undo/redo, 웹브라우저의 뒤로/앞으로
큐의 활용 예 - 최근사용문서, 인쇄작업 대기목록, 버퍼(buffer)
'Programming > 자바(Java)' 카테고리의 다른 글
11-25 Arrays (0) | 2024.10.14 |
---|---|
11-22 Iterator, ListIterator, Enumeration (5) | 2024.10.14 |
11-12 LinkedList / ArrayList, LinkedList 비교 (1) | 2024.10.13 |
11-7 ArrayList (0) | 2024.10.11 |
11-1 컬렉션 프레임웍 (1) | 2024.10.11 |