ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자료구조
    Technique/ETC 2017. 5. 25. 09:45
    반응형

    자료구조 ( data structure )

    자료의 잡합을 의미하며 원소들 사이의 관계가 논리적으로 정의된 일정한 규칙에 의하여 나열되며 자료에 대한 처리를 효율적으로 수행할 있도록 자료를 조직적, 체계적으로 구분하여 표현한 것을 말한다.


    자료구조의 선택기준


    작업의 효율성, 추상화, 재사용성을 증가시키기 위하여 상황에 따른 적절한 자료구조를 선택하여 사용해야 한다.

    자료의 처리를 효율적으로 하기 위하여 아래의 사항을 고려해야 한다.

    • 자료의 처리시간
    • 자료의 크기
    • 자료의 활용 빈도
    • 자료의 갱신 정도
    • 프로그램의 용이성



    효율성( Efficiency )


    상황에 맞는 알고리즘을 사용하여 자료를 구조화 시키기 때문에 효율적으로 동작한다.

    예를 들어 모든 사원에 대해 사번과 이름의 쌍을 배열이라는 자료구조로 만들었을 사번을 가지고 이름을 찾을 경우 배열은 인덱스를 이용하여 데이터를 저장하기 때문에 찾으려는 사번이 첫번째 인덱스에 젖아되어 있을 경우 한번의 검색으로 찾을 있지만 최악의 경우 제일 마지막 인덱스에 위치할 있으므로 데이터의 수만큼 검색을 해야 한다.

    평균적으로 자료수/2 만큼의 검색을 해야 하므로 데이터를 찾는 작업이 빈번하고 데이터가 많을 경우 그다지 효울적이지 못하다. 이럴 때에는 해시 테이블과 같은 자료구조를 이용하여 빠르게 검색 작업을 있다.

    이처럼 상황에 맞는 적절한 자료구조를 이용하게 되면 데이터 처리의 효율을 높일 있다.



    추상화( Abstraction )


    복잡한 자료, 모듈, 시스템 등으로 부터 핵심적인 개념 또는 기능을 간추려 내는 것을 말한다.

    자료 구조를 이용하여 데이터를 처리할 경우 처리할 데이터를 어떻게 삽입하고 어떻게 추출할 것인가에 중점을 두지 않는다. 자료구조 자체를 구현하는 알고리즘에 중점을 두지 않고 어느 시점에 데이터를 삽입할 것이며 어느 시점에 데이터를 추출하고 이러한 데이터를 어떻게 사용할 것인지에 초점을 맞출 있기 때문에 프로그램의 비즈니스적인 요소에 시간을 할애할 있다.

    데이터를 처리하는 관점에서 보면 특정 자료구조 자체의 내부 구현은 그리 중요하지 않기 때문에 어떻게 구현했는지 보다 어떻게 사용하는지에 대해서 알고 있으면 된다.

    이러한 자료구조와 추상화는 실제 구현한 언어가 무엇인지에 따라 실제 코드는 다르지만 추상적인 개념에 대해서만 알고 있으면 되기 때문에 언어에 종속적이지 않다는 특징을 가진다.



    재사용성 ( Re-usability )


    자료 구조를 이용하여 데이터를 처리할 경우 해당 자료구조의 인터페이스만 이용하여 데이터를 처리하도록 하므로 모듈화가 가능하다. 이는 자료구조를 설계할 특정 프로그램에 맞추어 셀계하지 않고 다양한 프로그램에서 사용 있도록 범용화 하여 설계함으로써 가능하다.



    분류


    자료구조는 크게 선형 구조와 비선형 구조로 나눌 있다.

    선형 구조는 자료가 일렬로 연결되어 있는 형태로 구성하는 방법이고 비선형 구조는 자료의 구성이 일렬이 아닌 특별한 형태를 띄고 있는 구조이다.

     

    선형구조


    • 배열
    • 링크드 리스트
    • 스택
    • 데크

     

    비선형 구조


    • 트리
    • 그래프



    반응형

    댓글

Designed by Tistory.