본문 바로가기

CS지식/자료구조

[CS지식 -자료구조] 자료구조란?

1.  자료구조의 정의

  • 대량의 데이터를 효율적으로 관리하기 위해 데이터를 저장 및 정렬하는 방식
  • 데이터를 어떤 방식으로 저장하고 정렬하느냐에 따라 추출 방식 등 데이터 처리 및 조작하는데 필요한 코드가 달라짐
  • 목적
    - 데이터를 효율적으로 저장, 관리하여 메모리를 효율적으로 사용하기위해 사용
    - 적절한 자료구조의 사용은 실행시간을 단축시켜주고, 메모리의 용량을 절약해줌

2.  자료구조의 선택기준

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

3.  자료구조의 특징

  1. 효율성
    - 자료구조를 사용하는 목적은 효율적인 데이터의 사용 및 관리
    - 적절한 자료구조를 선택해 이용하면 데이터 처리의 효율이 올라감
  2. 추상화
    - 복잡한 자료, 모듈, 시스템등으로부터 핵심적인 개념만 간추려 내는 것
    - 자료구조를 구현할때 중요한 것은 어느 시점에 데이터를 삽입할 것이며(알고리즘 중점x), 어느 시점에 데이터를 추출하고 이러한 데이터를 어떻게 사용할 것인지 초점을 맞출 수 있음
    - 자료구조 내부의 구현보다 어떻게 사용해야 하는지, 추상적인 개념에 대해 이해하는것이 더욱 중요
  3. 재사용성
    - 자료구조를 설계할 때 특정 프로그램에서만 동작하게 설계하지 않음
    - 다양한 프로그램에서 동작 할 수 있도록 범용성 있게 설계하기 때문에 해당 프로젝트가 아닌 다른 프로젝트에서도 사용 가능

4.  자료구조의 분류

  • 선형구조 
    - 데이터가 일렬(순차적)로 나열되어있는 것
    - 자료들간의 전후관계가 1:1

  • 비선형 구조 
    - 특정 형태가 있는 것
    - 하나의 자료 뒤에 여러 개의 자료가 존재 할 수 있음
    - 자료들간의 전후관계가 1:다 또는 다:다

4-1. 선형구조

  • 비열(Array)
  • 연결 리스트(Linked List)
  • 스택(Stack)
  • 큐(Queue)

4-2. 비선형구조

  • 트리(Tree)
  • 그래프(Graph)
  • 테이블(Table)
  • 셋(Set)

 

 

 

 

더보기