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

Backend kwon·2023년 3월 20일

자료구조는 여러데이터의 묶음을 저장하고 사용하는 방법을 정의한 것이다.

이 중 Stack과 Queue에 대해 알아보자.

Stack

//stack 생성
Stack<타입> 인스턴스명 = new Stack<>();
  • 후입선출(LIFO)

  • 데이터는 하나씩 넣고 뺄 수 있음

  • 하나의 입출력 방향을 가지고 있음

  • stack사용의 예 : 프링글스, 브라우저에서 이전페이지, 다음페이지 이용.

  • stack의 기본 메서드
    push() : 스택에 데이터추가
    pop() : 가장 나중데이터 삭제하고 반환
    size() : 스택 데이터 크기 반환
    peek() : 가장 나중데이터 반환
    show() : 전체 데이터 String 타입으로 반환
    clear() : 스택 모든 데이터 삭제

Queue

//queue 생성
Queue<타입> 인스턴스명 = new LinkedList<>();

- queue는 인터페이스이므로 객체 생성이 불가능하다.
 따라서 LinkedList를 형변환하여 사용한다
  • 선입선출(FIFO)
  • 데이터를 넣는 것을 enqueue, 꺼내는 것을 dequeue 라고 함

  • 데이터가 입력된 순서대로 처리할 때 사용

  • 데이터는 하나씩 넣고 뺄 수 있음

  • 두 개의 입출력 방향을 가지고 있음

  • stack 사용의 예 : 톨게이트 , 프린터 인쇄
    프린터 인쇄시에 임시 기억 장치 Queue에 해당 문서가 들어가고 들어온 문서를 순서대로 인쇄한다.

  • queue의 기본 메서드
    add() : 큐에 데이터 추가
    poll() : 가장 처음 데이터 삭제, 반환
    size() : 큐 데이터 크기 반환
    peek() : 큐에 가장 먼저 추가된 데이터 반환
    show() : 전체 데이터 String타입으로 반환
    clear() : 큐 모든 데이터 삭제

+추가+

버퍼(Buffer)

  • A와 B가 서로 입출력을 수행하는데 있어서 속도차이를 극복하기 위해 사용하는 임시 저장공간

  • 버퍼링 : 버퍼를 채우는 동작을 의미함

profile
백엔드개발자를 향해서

0개의 댓글