자료구조(Data Structure)
- 자료구조는 다양한 형태를 가질 수 있는 데이터의 구조를 정의한 것을 뜻한다.
- 물리적, 논리적으로 다양한 데이터를 표현할 수 있는 자료의 구조를 정의하고 사용함으로 알고리즘을 구현할 수 있다.
자료구조는 다음과 같이 분류 할 수 있다.
자료 구조는 크게 아래와 같이 분류할 수 있다.
1. 단순구조
- 컴퓨터, 언어에서 기본적으로 제공하는 데이터를 의미한다. 이러한 기본 자료형을 모아서 배열, 구조체, 클래스 등을 선언하여 사용자 정의 자료형을 만들 수도 있다.
- 배열 : 동일한 자료형의 모음
- 구조체 : 여러 자료형을 모음 ( JAVA에서는 ArrayList를 제공한다. )
- 클래스 : 구조체의 특징과 메소드(함수)까지 포함하여 인스턴스를 생성할 수 있게 한다.
2. 선형 구조
- 선형 자료구조는 연속적인 자료라는 뜻이다. 주로 순서를 가지는 경우에 많이 사용하면 큐, 스택이 가장 대표적이다.
- 선형 구조도 사용 방법에 따라 원형, 이중 등으로 사용할 수 있다.
- 각각의 구조의 특성에 따라 활용 가능성이 다양한다
3. 비선형 구조
- 비선형 자료구조는 연속적이지 않은 형태, 노드 형태로 제공된다.
- 대표적으로 그래프, 트리가 있다. 트리는 순환하지 않는, 하나의 노드로 들어오는 차수가 하나인, 특수한 형태의 그래프를 뜻하면 족보를 생각하면 된다.
- 이러한 트리, 그래프는 현실세계의 문제를 해결하는데 유용하게 사용될 수 있다. ( ex. 경로 탐색, 구역 나누기, 외판원 순회 문제 .....)
4. 파일 구조
- 데이터를 파일로 저장하는 방식을 분류한 것이다.