자료 구조에 대해 설명한다.
자료 구조 특징
- 효율성
- 자료 구조 사용 목정은 효율적으로 자료를 관리하고 사용하는 것이다.
- 문제에 알맞은 자료 구조를 사용하면 업무 효율이 증가할 것이다.
- 추상화
- 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을 말한다.
- 어느 시점에 데이터를 삽입할 것인지, 어느 시점에 데이터를 추출하고 사용할 것인지에 초점을 둔다.
- 데이터를 어떻게 삽입, 추출, 사용하는지를 알고리즘에 중점을 두지 않는다.
- 재사용성
- 자료 구조를 설계할 때, 특정 프로그램에서만 동작하게 설계하지 않는다.
- 다양한 프로그램에서 동작할 수 있도록 범용성 있게 설계하기 때문에 다른 프로젝트에서도 사용할 수 있다.
종류
- “선형”
- 데이터가 일렬로 연결되어 있는 구조
- “비선형”
- 자료의 구성이 일렬이 아닌 특정한 형태를 띄는 구조
단순 구조
- 정수
- 실수
- 문자
- 문자열
선형 구조
- 배열(Array): 가장 일반적인 구조로서 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료구조
- 연결 리스트(Linked List): 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료구조
- 스택(Stack): FILO
- 큐(Queue): FIFO
비선형 구조
- 트리(Tree): 부모 노드 밑에 여러 개의 자식 노드가 연결되고, 자식 노드가 다시 부모가 되어 각각의 자식 노드가 연결되는 재귀적 형태의 자료구조
- 그래프(Graph): 정점(Vertex)과 정점들을 연결하는 변(Edge)으로 구성된 자료 구조