스택과 큐

조재형·2023년 5월 25일
0

스터디

목록 보기
19/19

스택과 큐 (Stack & Queue)

- 스택(Stack) : LIFO(Last in First Out) 구조. 마지막에 저장된 것을 제일 먼저 꺼내게 된다.

저장(push) 추출(pop)

스택은 배열에 유리하다.

- 큐(Queue) : FIFO(First In First Out)구조. 제일 먼저 저장한 것을 제일 먼저 꺼내게 된다.

저장(offer) 추출(poll)

큐는 링크드리스트를 가지고 만드는 것이 유리하다.

스택과 큐의 메서드

스택의 클래스, 메서드

Stack st = new Stack();

boolen empty() : Stack이 비어있는지 알려준다.

Object peek() : Stack의 맨 위에 저장된 객체를 반환. pop()과 달리 Stack에서 객체를 꺼내지는 않음. 즉 꺼내지 않고 확인만 한다. (비었을 때는 EmptyStackException발생)

Object pop() : Stack의 맨 위에 저장된 객체를 꺼낸다(삭제). (비었을 때는
EmptyStackException발생)

Object push(Object item) : Stack에 객체(item)를 저장한다

int search(Object o) : Stack에서 주어진 객체(o)를 찾아서 그 위치를 반환, 못찾으면 -1을 반환. (배열과 달리 위치는 0이 아닌 1부터 시작)
=> ArrayList의 indexOf()와 비슷한데 indexOf는 0부터 시작함

큐의 메서드

boolean add(Object o) : 지정된 객체를 Queue에 추가한다. 성공하면 tru를 반환. 저장공간이 부족하면 illegalStateException 발생
Object remove() : (삭제)Queue에서 객체를 꺼내 반환, 비어있으면 NoSuchElementException 발생
Object element() : 삭제없이 요소를 읽어온다. peek 와 달리 Queue 가 비었을 때 NoSuch ElementException 발생
boolean offer(Object o) : (추가)Queue에 객체를 저장, 성공하면 true 실패하면 false를 반환
Object poll() : (삭제)Queue에서 객체를 꺼내서 반환. 비어있으면 null을 반환.
Object peek() 삭제없이 요소를 읽어 온다. Queue가 비어있으면 null을 반환

  • remove와 poll의 차이는 remove는 예외가 발생하고 poll은 null을 반환하지 예외가 발생하지 않음.
profile
안녕하세요.

0개의 댓글