호비시의 끄적끄적
Stack, Queue 본문
Stack
Stack은 책을 차곡차곡 쌓은 것 처럼 LIFO(Last In First Out) 방식을 활용한 자료구조이다.
Method
push(data) : 맨 앞에 데이터 넣기
pop() : 맨 앞의 데이터 추출
peek() : 맨 앞의 데이터 보기
isEmpty() : 비어있는지 안 비어있는지 여부 반환
활용
- 웹 브라우저 방문기록
- 되돌리기(Ctrl + Z)
Stack<Integer> stack = new Stack<>();
stack.push(1); // 1 넣기
stack.push(2); // 2 넣기
stack.push(3); // 3 넣기
stack.peek(); // top 보기, 3 출력
stack.pop(); // top 추출, 3 꺼내짐
stack.isEmpty(); // false
Queue
Queue는 줄 서서 기다리는 것 처럼 FIFO(First In First Out) 방식을 활용한 자료구조이다.
Method
enqueue(data) : 맨 뒤에 데이터 추가하기
dequeue() : 맨 앞의 데이터 추출
peek() : 맨 앞의 데이터 보기
isEmpty() : 비어있는지 안 비어있는지 여부 반환
활용
- 대기열 순서
- 프로세스 관리
Queue<Integer> queue = new LinkedList<>();
queue.add(1); // 1 넣기
queue.add(2); // 2 넣기
queue.add(3); // 3 넣기
queue.peek(); // 맨 앞 보기, 1 출력
queue.poll(); // 맨 앞 추출, 1 꺼내짐
queue.isEmpty();// false
add() 와 offer()의 차이
- add()
해당 큐 맨 뒤의 값 삽입
값 추가 성공시 true 반환
큐가 꽉찬 경우 illegalStateException 에러 발생 - offer()
해당 큐 맨 뒤의 값 삽입
값 추가 성공시 true 반환
값 추가 실패시 false 반환
remove() 와 poll()의 차이
- remove()
해당 큐 맨 앞에 있는 값 반환 후 삭제
큐가 비어있는 경우 NoSuchElementException 에러 발생 - poll()
해당 큐 맨 앞에 있는 값 반환 후 삭제
큐가 비어있는 경우 null 반환
'자료구조' 카테고리의 다른 글
List, Set, Map (0) | 2022.06.26 |
---|
Comments