Data Structure   자료 구조, 데이터 구조

(2019-12-23)
1. 자료 구조 (Data Structure)

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

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


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

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


3. 자료구조의 종류                                   ☞ 자료구조 종류 참조

  ㅇ 단순 구조 (통상, 자료구조로써 구분 포함시키지 않음)
     - 문자형,문자열형,숫자형,논리형 등   ☞ 자료형, C 언어 자료형 등 참조

  ㅇ 자료 간의 연결 형태/모양에 따른 구분
     - 선형 자료구조 (linear, 전후 1:1 연결 형태)
        . 기본 선형 자료구조 : 리스트, 연결 리스트, 배열, 레코드 등
        . 제한 선형 자료구조 : 스택, , 데크(스택가 혼합된 형태) 등
     - 비선형 자료구조 (nonlinear, 전후 多:多 연결 형태)
        . 트리, 그래프 등

  ㅇ 자료 간에 연속,연결 구조에 따른 구분
     - 배열에 기반한 연속 방식 구조 (continuation) : 리스트 등
     - 포인터 기반의 연결 방식 구조 (link) : 例) 연결 리스트 등

  ㅇ 기타 자료구조 : 집합, 딕셔너리/사전
4. 자료구조의 선택 (고려 사항)

  ㅇ 데이터의 양
  ㅇ 데이터 사용 횟수 및 방법
  ㅇ 요구되는 기억장치의 양
  ㅇ 데이터 수정에 필요한 시간알고리즘 복잡도 등


5. 자료구조의 관점 (저장,처리,표현 등)

  ㅇ 데이터의 저장/접근 관점
     - 데이터를 컴퓨터 메모리에 저장/접근할 때,
     - 데이터의 순서 및 위치관계 등이 명확하게 정해져야 올바른 처리 가능 함

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

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

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

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


[자료구조] 1. 자료구조 2. 자료구조 종류
[선형 자료구조 (리스트 등)] [비선형 자료구조 (트리,그래프)] [기타 자료구조] [자료구조 기타일반]
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
          1. 프로그램, 프로그래밍
      1.   프로그래밍 언어론
      2.   프로그래밍 방법론
      3.   객체지향 프로그래밍
      4.   자료표현코드
      5.   자료구조
            1. 자료구조
            2. 자료구조 종류
        1.   선형 자료구조 (리스트 등)
        2.   비선형 자료구조 (트리,그래프)
        3.   기타 자료구조
        4.   자료구조 기타일반
      6.   알고리즘
      7.   시스템 소프트웨어
      8.   프로그래밍언어 종류
      9.   프로그래밍 기타일반
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

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