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

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

 
        최근수정     요약목록(시험중)     참고문헌