yongckim/[DataStructure] 자료구조

Created Mon, 22 Nov 2021 21:01:07 +0900 Modified Mon, 22 Nov 2021 21:28:09 +0900
556 Words

자료구조

먼저, ArrayList에 대해서 알아보기 전에 자료구조란 무엇인지 알아봅시다.

자료구조는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능하게 하는 자료의 조직, 관리, 저장을 의미합니다.

더 정확하게 자료구조는 데이터 값의 모임, 또 데이터 간의 관계 그리고 데이터에 적용할 수 있는 함수나 명령을 의미합니다.

자료구조의 목적

자료를 좀 더 효율적으로 저장, 관리하기 위해 사용하며 신중하게 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 함으로써 프로그램의 실행시간이나, 사용하는 메모리 양을 절약하게 할 수 있습니다.

자료구조의 선택 기준

자료를 처리할 때 효율적으로 처리하기 위해서 다음과 같은 사항 등을 고려하여 선택해야 합니다.

  • 자료의 처리 시간

  • 자료의 특성과 크기

  • 자료가 활용되는 방법

  • 구현에 필요한 기억 공간의 크기

자료구조의 분류

자료구조는 다음과 같이 분류할 수 있습니다.

  • 단순 구조 : 프로그래밍에서 사용되는 기본적인 데이터 타입

    • 2진수
    • 정수 / 실수
    • 문자 / 문자열
  • 선형 구조 : 자료를 구성하는 데이터를 순차적으로 나열시킨 형태 (1:1)

    • 배열
    • 링크드 리스트
      • 단순 링크드 리스트
      • 이중 링크드 리스트
      • 원형 링크드 리스트
    • 스택
  • 비선형 구조 : 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 형태(1:n or n:m)

    • 트리
      • 일반 트리
      • 이진 트리
    • 그래프
      • 방향 그래프
      • 무방향 그래프
  • 파일 구조 : 파일에서의 데이터를 표현하는 방식과 데이터에 접근하는 연산에 관한 자료 구조

    • 순차 파일
    • 색인 파일
    • 직접 파일