자료구조란 데이터를 메모리에 배치하고 저장하는 방식입니다.

자료구조를 사용하는 이유

데이터를 효율적으로 저장, 관리하여 메모리를 효율적으로 사용하기 위함입니다. 적절한 자료구조의 사용은 메모리의 용량을 절약해주고, 실행시간을 단축시켜줄 수 있습니다.
-> 예를 들면, 특정 원소를 Search하거나 add할 때(..등), 자료구조마다 그 방식이 다르고, 따라서 사용하는 메모리의 양과 실행 소요 시간도 다릅니다.
그래서 Data마다(또는 수행하는 일마다) 적절한 자료구조가 다릅니다.

자료구조에서 수행되는 일

  • Search(탐색)
  • Insert(추가)
  • Delete(삭제)

자료구조의 선택 기준

  • 자료의 처리 시간
  • 자료의 크기
  • 자료의 활용(탐색) 빈도
  • 자료의 갱신(추가/삭제) 정도
  • 프로그램의 용이성

자료구조의 분류

  • 단순구조 : 프로그래밍에서 사용되는 기본 데이터 타입 (숫자, 문자, 문자열)
  • 선형구조 : 저장되는 자료의 전후관계가 1:1 (배열, 리스트, 스택, 큐 등)
  • 비선형구조 : 데이터 항목 사이의 관계가 1:n 또는 n:m (트리, 그래프 등)
  • 파일구조 : 서로 관련된 필드들로 구성된 레코드의 집합인 파일에 대한 자료구조

자료구조와 알고리즘의 관계

자료구조를 구현하기 위해서는 알고리즘이 필요하다.

  • 자료구조 자체의 구현 알고리즘 : 자료를 조직하는 규칙을 논리적으로 구현하는 방법
    (+자료구조의 메서드 알고리즘 : 데이터를 탐색하고 추가하고 삭제하는 방법)
  • 자료구조를 이용한 알고리즘 : 자료구조를 활용하여 어떤 문제를 해결하는 것