● 자료구조의 정의
자료구조(Data Structure)란 자료(Data)의 집합을 의미하며, 각 원소들 사이의 관계가 논리적으로 정의된 일정한 규칙에 의하여 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 조직적, 체계적으로 구분하여 표현한 것을 말한다.
● 자료구조의 목적
- 데이터를 효율적으로 저장, 관리하여 메모리를 효율적으로 사용하기 위해 사용한다.
- 적절한 자료구조의 사용은 실행시간을 단축시켜주고, 메모리의 용량을 절약해준다.
● 자료구조의 선택 기준
- 데이터의 처리시간
- 데이터의 크기
- 데이터의 활용 빈도
- 데이터의 갱신 정도
- 프로그램의 용이성
● 자료구조의 특징
○ 효율성
자료구조를 사용하는 목적은 효율적인 데이터의 사용 및 관리이다.
적절한 자료구조를 선택하여 이용한다면 데이터 처리의 효율이 올라갈 것이다.
○ 추상화
복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념만 간추려 내는 것이다.
자료구조를 구현할 때 중요한 것은 알고리즘에 중점을 두지 않고 어느 시점에 데이터를 삽입할 것이며, 어느 시점에 데이터를 추출하고 이러한 데이터를 어떻게 사용할 것인지에 초점을 맞출 수 있기 때문에 구현 외적인 부분에 더 시간을 쏟을 수 있다.
자료구조 내부의 구현보다 어떻게 사용해야 하는지, 추상적인 개념에 대해서 이해하고 있다면 된다.
○ 재사용성
자료구조를 설계할 때 특정 프로그램에서만 동작하게 설계하지는 않는다.
다양한 프로그램에서 동작할 수 있도록 범용성 있게 설계하기 때문에 해당 프로젝트가 아닌 다른 프로젝트에서도 사용할 수 있다.
● 자료구조의 분류
○ 선형 구조
- 선형 리스트(Linear List)
- 연결 리스트(Linked List)
- 스택(Stack)
- 큐(Que)
- 덱(Deque)
# 데이터를 순차적으로 나열시킨 형태다.
# 자료들 간의 전후관계가 1:1 이다.
○ 비선형 구조
- 트리(Tree)
- 그래프(Graph)
# 하나의 자료 뒤에 여러 개의 자료가 존재할 수 있다.
# 자료들 간의 전후관계가 1:다 또는 다:다 이다.
'Study > Data Structure' 카테고리의 다른 글
[자료구조] 1. 트리(Tree) - 이진 트리(Binary Tree), 트리 순회(Tree Traverse) (0) | 2021.07.01 |
---|---|
[자료구조] 큐(Queue) - 선형 큐(Linear Queue), 원형 큐(Circular Queue), 연결 큐(Linked List Queue), 데크(Double-Ended Queue) (0) | 2021.06.29 |
[자료구조] 스택(Stack) (0) | 2021.06.29 |
[자료구조] 연결 리스트 (Linked List) (0) | 2021.06.28 |
[자료구조] 선형 리스트 (Linear List) (0) | 2021.06.28 |
댓글