0%

StackQueue

스택과 큐(Stack&Queue)

  • 스택(Stack): LIFO구조. 마지막에 저장된 것을 제일 먼저 꺼냄
  • 큐(Queue): FIFO구조. 제일 먼저 저장한 것을 제일 먼저 꺼냄

스택 메서드

메서드 설명
boolean empty() Stack이 비어있는지 알려줌
Object peek() Stack의 맨 위에 저장된 객체를 반환. pop()과 달리 Stack에서 객체를 꺼내지는 않음
Object pop() Stack의 맨 위에 저장된 객체를 꺼냄
Object push(Object item) Stack에 객체(item)을 저장
int search(Object o) Stack에서 주어진 객체(o)를 찾아서 그 위치를 반환, 못찾으면 -1을 반환(배열과 달리 위치는 0이 아닌 1부터 시작)

큐 메서드

메서드 설명
boolean add(Object o) 지정된 객체를 Queue에 추가. 성공하면 true를 반환.
Object remove() Queue에서 객체를 꺼내 반환.
Object element() 삭제없이 요소를 읽어옴 peek과 달리 Queue가 비어있을 때 NoSuchElementException발생
boolean offer(Object o) Queue에 객체를 저장. 성공하면 true. 실패하면 false
object poll() Queue에서 객체를 꺼내서 반환
Object peek() 삭제없이 요소를 읽어옴
  • Queue는 인터페이스로 되어 있어서 객체생성이 안됨
1
Queue q = new LinkedList();

예제

image

스택과 큐의 활용

  • 스택의 활용 예 - 수식계싼, 수식괄호검사, 워드프로세스의 undo/redo, 웹브라우저의 뒤로/앞으로
  • 큐의 활용 예 - 최근사용문서, 인쇄작업 대기목록

image

image