Java에서 Stack, Queue 사용하기

hyun·2022년 12월 25일
0
post-thumbnail

코딩 테스트 공부 -> 알고리즘 기초 알기 수순으로 공부를 하다 stack, queue는 잘 활용해보지 않았던 거 같아 개념을 되짚어 보고자 한다.

그럼 가보자구~!~!



Stack

stack의 특징은 바로 LIFO(Last In First Out, 후입선출)
마지막에 들어온 데이터가 먼저 출력된다는 것이다.

삽입과 삭제가 한 쪽에서 일어나며 깊이 탐색(DFS)에서 사용하는 자료구조.


데이터 넣기

Stack<Integer> stack = new Stack<>();

stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);

//input data result : [1, 2, 3, 4]
System.out.println("input data result : " + stack.toString());

데이터 삭제

stack.pop();
stack.pop();

// delete data result : [1, 2]
System.out.println("delete data result : " + stack.toString());

맨 끝 데이터 가져오기

// get data : 2
System.out.println("get data : " + stack.peek());



Queue

Queue의 특징 FIFO(First In First Out, 선입선출)
먼저 들어온 데이터가 먼저 출력된다는 것이다.

삽입과 삭제가 양쪽에서 일어나며 너비우선탐색(BFS)에서 사용하는 자료구조.


데이터 넣기

Queue<Integer> queue = new LinkedList<>();

queue.add(1);
queue.add(2);
queue.add(3);
queue.add(4);

//input data result : [1, 2, 3, 4]
System.out.println("input data result : " + queue.toString());

데이터 삭제

queue.poll();
queue.poll();


// delete data result : [1, 2]
System.out.println("delete data result : " + queue.toString());

맨 앞 데이터 가져오기

// get data : 2
System.out.println("get data : " + queue.peek());

queue내 데이터 비우기

queue.clear();

// queue clear result : []
System.out.println("queue clear result : " + queue.toString());




자료 출처

알고리즘 코딩테스트_이지스퍼블리싱 김종관




gif 출처

https://media.giphy.com/media/cXblnKXr2BQOaYnTni/giphy.gif

profile
크리스마스 캐럴을 좋아하는 사람!

0개의 댓글