[코드스테이츠 백엔드 44기 SEB BE] 23일차

오태호·2023년 3월 17일
0

코드스테이츠

목록 보기
20/22
post-thumbnail

자료 구조

데이터

  • 데이터(data)
    • 문자, 소리, 그림, 숫자 등 실생활을 구성하는 모든 값
    • 데이터 자체만으로는 정보를 가지기 힘들다
      • 데이터를 분석 / 정리해서 활용할 때 의미를 가진다
  • 데이터는 사용하려는 목적에 따라 형태를 구분하고, 분류하여 사용한다
    • 서로 다른 형태의 데이터를 하나의 방법으로만 정리하고 활용하는 것은 비효율적이다
    • 필요에 따라 데이터의 특징을 분석해 정리하고, 활용해야 한다!
      • 데이터를 체계적으로 정리하여 저장해두는 것이, 데이터 활용에 있어 유리하다!

자료 구조

  • 자료 구조
    • 여러 데이터의 묶음을 저장하고, 사용하는 방법을 정의한 것
    • 무수한 상황에서 데이터를 효율적으로 다룰 수 있는 방법을 모아둔 것
      • Ex. Stack, Queue, Tree, Graph, ...
  • 대부분의 자료 구조는 특정한 상황에 놓인 문제를 해결하는 데에 특화되어 있다
    • 특정 문제를 해결하는 데에 적합한 자료 구조를 찾아 데이터를 정리하고 활용할 줄 안다면, 상황에 가장 적합하고 정확한 코드를 작성할 수 있다

Stack

  • 데이터를 순서대로 쌓는 구조
  • 실사용 예제
    • Ex. 브라우저의 뒤로 / 앞으로 가기 기능

Stack의 구조

  • 입력과 출력이 하나의 방향으로 이루어지는 제한적 접근
    • 이러한 Stack 자료 구조의 정책 : LIFO(Last In First Out) 혹은 FILO(First In Last Out)
    • Stack에 데이터를 넣는 것을 'push', 꺼내는 것을 'pop'이라 부른다

Stack의 특징

1. LIFO(Last In First Out)

  • 먼저 들어간 데이터는 제일 나중에 나오는 후입선출의 구조를 가지고 있다

2. 데이터는 하나씩 넣고 뺄 수 있다

  • 한꺼번에 여러 개의 데이터를 넣거나 뺄 수 없다

3. 하나의 입출력 방향으로 가지고 있다

  • 데이터의 입출력 방향이 같다
  • 입출력 방향이 여러 개라면 Stack 구조라고 볼 수 없다

Queue

  • 실사용 예제 : 여러 문서를 순서대로 인쇄하는 프린터

Queue의 구조

  • 입력과 출력 방향이 고정되어 있으며, 두 곳으로 접근이 가능하다
    • 먼저 들어간 데이터가 먼저 나오는 FIFO(First In First Out) 혹은 LILO(Last In Last Out)을 특징으로 갖고 있다
    • 데이터를 넣는 것을 'enqueue', 꺼내는 것을 'dequeue'라고 부른다
  • Queue는 데이터를 입력된 순서대로 처리할 때 주로 사용된다

Queue의 특징

1. FIFO(First In First Out)

  • 먼저 들어간 데이터가 제일 처음에 나오는 선입선출 구조를 가지고 있다

2. 데이터는 하나씩 넣고 뺄 수 있다

  • 한꺼번에 여러 개의 데이터를 넣거나 뺄 수 없다

3. 두 개의 입출력 방향을 가지고 있다

  • 데이터의 입력, 출력 방향이 다르다
  • 입출력 방향이 같다면 Queue 구조라고 볼 수 없다
profile
자바, 웹 개발을 열심히 공부하고 있습니다!

0개의 댓글