스택, 큐, 데큐를 공부하면서 알아간 것들과 기억할만한 것들을 정리해보려고 한다.
먼저, 스택이란 나중에 들어간 데이터가 가장 먼저 나온다는 특징을 가진 자료구조이다.
위의 그림을 보면 스택의 push()와 pop() 메서드를 통해 스택의 저장공간에 데이터 요소들을 저장하고 삭제하는 모습이다.
pop()을 사용해서 데이터 요소를 제거할 때 가장 최근에 저장되었던 45가 제거되는 모습이다.
위의 사진은 스택에서 자주 사용하는 메소드들이다.
보다시피 pop()을 사용해서 데이터를 제거할 때 배열의 특정 원소를 제거하는 것처럼 원하는 요소를 제거할 수는 없다.
pop()을 사용하면 무조건 가장 최상단의 요소값이 제거된다는 점을 기억해야겠다.
정수형으로 스택을 사용하고자 할 때에는 위와 같이 선언하면 된다.
다음으로는 큐와 덱이다.
큐는 스택과 다르게(당연하게도) 먼저 들어온 데이터가 먼저 삭제되는 구조이다.
위의 그림을 보면 데이터가 들어온 순서대로 저장되고 삭제도 들어온 순서대로 쭉쭉 삭제가 되는 모습이다.
일상생활에서 줄을 서는것과 같다고 이해하면 쉽다.
덱은 스택과 큐의 개념을 같이한다라고 이해하면 쉬울 수 있다.
덱이란 Deque를 덱이라고 부르는 것인데, 큐의 개념에서 데이터의 저장을 앞, 뒤로 사용자가 원하는 곳에 저장할 수 있다.
물론, 삭제도 앞,뒤로 접근해서 삭제가 가능하다.
큐와 덱에서 입력을 offer 또는 add를 사용하고 삭제도 poll 또는 remove를 사용한다.
이때, Deque를 사용한다면 offerFirst 또는 offerLast를 통해 데이터를 앞, 뒤로 저장할 수 있다.
마찬가지로, pollFirst 또는 pollLast를 통해서 데이터를 앞,뒤로 삭제할 수 도 있다.
사용자는 자신이 원하는 방식으로 덱을 이용해서 코드를 작성할 수 있을 것이다.
공부하면서 자주 볼 수 있도록 글을 작성해 보았다.
'coding' 카테고리의 다른 글
SSH 접속 안됨 (0) | 2025.04.29 |
---|---|
@ModelAttribute에서 바인딩안되는 문제 (0) | 2025.04.09 |
JWT (0) | 2025.01.21 |
이분 탐색,이진 탐색(Binary Search) 알고리즘에 대해 알아보자. ( Java ) (0) | 2023.04.15 |
언어의 자료형과 기본형 구분 ( Java ) (0) | 2023.04.08 |