부트캠프

자료구조/알고리즘 - Stack, Queue

hunm719 2023. 1. 16. 20:45

데이터(data) : 문자, 숫자, 소리, 그림 등 실생활을 구성하고 있는 모든 값

1.자료구조 : 여러 데이터의 묶음을 저장하고, 사용하는 방법을 정의한 것
-대부분의 자료구조는 특정한 상황에 놓인 문제를 해결하는데에 특화되어 있음
-많은 자료구조를 알아두면, 상황에 적합한 자료구조를 빠르고 정확하게 적용하게 문제를 해결할 수 있음

자료구조의 정리와 구분


1-1.스택(Stack)
 -쌓다, 포개지다와 같은 뜻으로, 데이터를 순서대로 쌓는 자료구조

 -대표적인 예시로 프링글스
 
 -Stack의 특징
  (1)LIFO(Last In First Out) : 후입선출
  (2)데이터를 하나씩 넣고 하나씩 뺄 수 있음(한 꺼번에 여러 개 불가능)
  (3)하나의 입출력 방향을 가짐

 -Stack의 메서드
  (1)push() : 스택에 데이터 추가
  (2)pop() : 가장 나중에 추가된 데이터를 스택에서 삭제하고 삭제한 데이터를 리턴
  (3)size() : 스택에 추가된 데이터의 크기를 리턴
  (4)peek() : 스택에 가장 나중에 추가된 데이터를 리턴
  (5)show() : 현재 스택에 포함된 모든 데이터를 String타입으로 변환하여 리턴
  (6)clear() : 현재 스택에 포함된 모든 데이터를 삭제


1-2.큐(Queue)
 -줄을 서서 기다리다는 뜻으로 데이터를 순서대로 쌓는 구조

 -대표적인 예시로 고속도로 하이패스



 -Queue의 특징
  (1)FIFO(First In First Out) : 선입선출
  (2)데이터를 하나씩 넣고 하나씩 뺄 수 있음(한 꺼번에 여러 개 불가능)
  (3)두 개의 입출력 방향을 가짐(하나는 입력, 하나는 출력)

 -컴퓨터 장치들 사이에서 데이터를 주고받을 때, 각 장치 사이에 존재하는 속도나 시간 차이를 극복하기 위해 임시 기억 장치의 자료구조로 Queue를 사용, 이를 통틀어 버퍼(Buffer)라고 함.

 -Queue의 메서드
  (1)add() : 큐에 데이터 추가
  (2)poll() : 가장 먼저 추가된 데이터를 큐에서 삭제하고 삭제한 데이터를 리턴
  (3)size() : 큐에 추가된 데이터의 크기를 리턴
  (4)peek() : 큐에가장 먼저 추가된 데이터를 리턴
  (5)show() : 현재 큐에 포함된 모든 데이터를 String타입으로 변환하여 리턴
  (6)clear() : 현재 큐에 포함된 모든 데이터를 삭제

 

 

 

자료 출처 - code states