이번에도 코딩테스트 준비를 하다가 스택과 큐를 사용한 문제들을 구현하게 되었는데 대학교 때 배웠던게 조금씩 떠올랐다.
그래서 스택과 큐에 대한 내용을 정리해보려고 한다.
Stack은 LIFO 구조로 마지막에 저장한 데이터를 가장 먼저 꺼낸다.
Queue는 FIFO 구조로 먼저 들어간 데이터를 먼저 꺼낸다.
1. Stack의 메서드
- empty()
Stack이 비어있는지를 반환해준다.
- peek()
맨 위에 저장된 객체를 반환해준다.
Stack에서 객체를 꺼내지는 않는다.
- pop()
맨 위에 저장된 객체를 반환해준다. (꺼낸다)
- push()
Stack에 객체를 저장한다.
- search
Stack에서 주어진 객체를 찾아 그 위치를 반환하고, 못찾으면 -1을 반환한다. (위치는 1부터 시작)
2. Queue의 메서드
- add()
지정된 객체를 Queue에 추가한다.
- offer()
Queue에 객체를 저장한다.
- poll()
Queue에서 객체를 꺼내 반환한다.
비어있으면 null을 반환한다.
- peek()
삭제 없이 요소를 읽어온다.
Queue가 비어있으면 null을 반환한다.
- remove()
Queue에서 객체를 꺼내 반환한다.
비어있으면 예외를 발생시킨다.
알고리즘을 공부할수록 까먹었던 것들이 생각났다. 아직 부족한 것 같아서 더 열심히 해야겠다. 망망!
'학습' 카테고리의 다른 글
[Java] JPA 강의 - 1, 2 (JPA 소개) (0) | 2024.01.11 |
---|---|
[Java] Arrays 클래스 (0) | 2023.10.17 |
[Java] HashMap, TreeSet (0) | 2023.10.13 |
[Java] 문법 (0) | 2023.10.10 |
코딩테스트 준비하기 (1) | 2023.10.06 |