Data Structure   자료 구조, 데이터 구조, 선형 자료구조, 비선형 자료구조

(2019-05-27)
1. 자료 구조 (Data Structure)

  ㅇ 문제 해결을 위해 데이터를 조직화하고 표현하는 방법
     - 문제에 맞게 쉬운 접근,변경,처리할 수 있도록 조직화시킴
        . 즉, 알고리즘에서 효과적으로 처리 가능하도록 만들어진 데이터 형태

  ㅇ 자료 및 그 처리를 함께 고려하는 관점의 데이터 형식
     - 즉, 자료와 그 작동을 함께 고려하면서,
        . 이를 컴퓨터에 효과적으로 표현,저장,처리하는 기술
     - 특히, 이 둘을 잘 감싸는(캡슐화) 것을 추상자료형 이라고 함 


2. 자료구조의 목적/이유

  ㅇ 효율적으로 데이터를 사용하기 위함
     - 일반적으로, 좋은 자료구조는 연산의 횟수를 작아지게할 수 있지만,
     - 모든 목적에 적합한 단일한 자료구조는 없으며, 응용에 따라 달라짐

  ㅇ 자료구조 관련 연산의 다양성 및 효율성 제고
     - 통상의 사칙연산 이외에도,
     - 읽기,삽입,삭제,비교,교환,검색 등의 효율성도 고려


3. 자료구조의 종류

  ㅇ 자료 간의 연결 형태/모양에 따른 구분
     - 선형 자료구조
     - 비선형 자료구조

  ㅇ 기타 자료구조
     - 집합
        . 집합 요소는 정렬되어있지 않고 모두 유일함, 즉 중복값 허용 불가
     - 딕셔너리/사전
        . 데이터를 키와 값의 쌍으로 저장하는 자료구조
        . 키로 검색하고, 결과로 값을 반환


4. 선형 자료구조 (Linear Data Structure)

  ㅇ 한 원소 뒤에 하나의 원소 만이 존재함
     - 자료들이 직선 형태로 나열되어 있는 구조 (원소들간에 순서를 고려함)
        . 전후/인접/선후 원소들 간에 1:1 관계로 나열됨
          선형 자료구조 例) 
     - 기본 선형 자료구조 : 리스트, 연결 리스트, 배열, 레코드 등
        . 자료의 삽입 및 삭제가 어느 위치에서도 이루어짐 
     - 제한 선형 자료구조 : 스택, , 데크(스택가 혼합된 형태) 등
        . 자료의 삽입 및 삭제가 정해진 위치에서만 이루어짐 


5. 비선형 자료구조 (Nonlinear Data Structure)

  ㅇ 한 원소 뒤에 여러개의 원소들이 존재할 수 있음
     - 인접(전후) 원소들 간에 多:多 관계로 배치됨

  ㅇ 특징
     - 계층적 구조(Hierarchical Structure)를 나타내기에 적절
        . 例) 가계도상에서 조상-자손 간의 관계, 직장 상사-부하 간의 관계,
                  컴퓨터 폴더 구조 등
     비선형 자료구조 例)  트리, 그래프
6. 자료구조의 관점

  ㅇ 데이터 및 연산을 함께 다루는 관점
     - 자료형(Data Type)               : 데이터 위주로 만 고려
        . 자료(변수)가 갖는 값의 종류를 표현
        . 이때, 연산은 그 자료형에 맞게끔 별도/부가적/부차적으로 수행되는 관점임

     - 추상 자료형(Abstract Data Type) : 데이터와 연산을 함께 고려
        . `자료` 및 `연산`을 모두 하나로 묶어 하나의 단위로 표현
        . 자료 저장 및 처리 보다는 문제 해결 지향적인 자료형 임

  ㅇ 데이터의 표현/구현/설계 관점
     - 사전 정의형 (프로그래밍 언어에서 기본 내장 제공)
        . C 언어 例) 배열, 구조체 등 

     - 사용자 정의형 (프로그래머가 응용에 따라 직접 구현)
        . 다루는 데이터들에 대해, 단순히 적절한 자료형을 선택하는 것 이상으로,
        . 종합적으로 고려하며,
           .. 어떤 연산들이 필요하고,
           .. 데이터를 효율적으로 저장하는 방법은 어떻고,
           .. 유효한 연산들은 무엇인지 등
        . 자료구조 및 알고리즘 등을 설계해야 함


[자료구조] 1. 자료구조
[선형자료구조(리스트 등)] [비선형자료구조(트리,그래프)] [자료구조 기타일반]

 
        최근수정     요약목록     참고문헌