Stack/Queue

개굴이·2023년 9월 4일
0

Java

목록 보기
2/7
post-thumbnail

Stack

스택은 데이터를 저장하고 관리하는 추상적인 자료구조로, "Last In, First Out" (LIFO) 원칙에 따라 데이터를 처리한다. 마지막에 추가된 데이터가 가장 먼저 제거되는 구조

스택의 기본 동작

  • Push(푸시): 데이터를 스택의 맨 위에 추가
  • Pop(팝): 스택의 맨 위 데이터를 제거하고 반환
  • Peek(피크): 스택의 맨 위 데이터를 반환하지만 제거하지는 않는다.
  • isEmpty(): 스택이 비어있는지 여부를 확인
  • size(): 스택에 저장된 데이터의 개수를 반환
// 스택 생성
Stack<Integer> stack = new Stack<>();

// Push: 데이터 추가
stack.push(10);
stack.push(20);
stack.push(30);

// Peek: 스택의 맨 위 데이터 확인
int topValue = stack.peek();//30

// Pop: 스택의 맨 위 데이터 제거 및 반환
int poppedValue = stack.pop();//30

// Pop 후에 Peek를 통해 스택의 맨 위 데이터 확인
int newTopValue = stack.peek();//20

// 스택이 비어있는지 확인
boolean isEmpty = stack.isEmpty();//false

// 스택 크기 확인
int size = stack.size();//2

Queue

큐는 컬렉션 프레임워크의 일부로 제공되는 자료구조 중 하나로 "First In, First Out" (FIFO) 원칙에 따라 데이터를 저장하고 관리하는 추상적인 자료구조이다. 가장 먼저 추가된 데이터가 가장 먼저 처리되는 특성을 가지며, 주로 대기열이나 작업 처리에 사용된다.

큐의 기본 동작

  • Enqueue(인큐): 데이터를 큐의 뒤쪽에 추가
  • Dequeue(디큐): 큐의 맨 앞 데이터를 제거하고 반환
  • Peek(피크): 큐의 맨 앞 데이터를 반환하지만 제거하지는 않는다.
  • isEmpty(): 큐가 비어있는지 여부를 확인
  • size(): 큐에 저장된 데이터의 개수를 반환
// 큐 생성
Queue<String> queue = new LinkedList<>();

// Enqueue: 데이터 추가
queue.add("apple");
queue.add("banana");
queue.add("orange");

// Peek: 큐의 맨 앞 데이터 확인
String frontValue = queue.peek();//apple

// Dequeue: 큐의 맨 앞 데이터 제거 및 반환
String dequeuedValue = queue.poll();//apple

// 큐가 비어있는지 확인
boolean isEmpty = queue.isEmpty();//false

// 큐 크기 확인
int size = queue.size();//2

출처 openAI

0개의 댓글