HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🛁
공부기록
/
🚡
알고리즘 정리
/
🧿
스택, 큐
🧿

스택, 큐

태그

큐의 기본정리

  • FIFO 구조 먼저 들어온 사람이 먼저 빠져 나간다. > 음식점을 줄을 생각하면 좋다.
  • Enqueue -> 큐에 데이터 삽입
  • Dequeue -> 큐에 데이터 내보내기
  • 큐는 멀티 태스킹 작업에 스케쥴링 작업에 많이 쓰임
  • * 큐 작성해보기 **
import java.util.ArrayList; public class MyQueue<T> { private ArrayList<T> queue = new ArrayList<>(); public void enqueue(T item) { queue.add(item); } public T dequeue() { if(queue.isEmpty()) return null; return queue.remove(0); } public boolean isEmpty() { return queue.isEmpty(); } public static void main(String[] args) { MyQueue<Integer> queue = new MyQueue<>(); queue.enqueue(1); queue.enqueue(2); queue.dequeue(); } }

스택 기본 정리

  • 한쪽 끝에서만 넣고 뺄 수 있는 자료구조
  • LIFO 형식으로 마지막에 들어온 자료가 가장 먼저 나간다.
  • 데이터 넣기 : push / 데이터 빼기 : pop
  • 장점 : 구조가 단순해서 구현이 쉬움, 읽기 속도가 빠르다
  • 단점 : 데이터의 최대 개수를 미리 정해야함, 저장공간의 낭비가 있을 수 있다.
  • * 스택 작성해보기 **
import java.util.ArrayList; import java.util.List; public class MyStack<T> { List<T> stack = new ArrayList<>(); public void push(T data) { stack.add(data); } public T pop() { if(stack.isEmpty()) { return null; } return stack.remove(stack.size() - 1); } }