자료구조란
자료구조란 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미합니다.
여기서 자료란 현실 세계에서 수집하 사실이나 개념의 값을 의미합니다.
자료구조를 사용하는 이유는 데이터를 효율적으로 저장, 관리하여 메모리를 효율적으로 사용하기 위함입니다.
자료구조의 특징
자료구조에는 몇가지 특징이 있습니다.
- 효율성
- 추상화
- 재사용성
1. 효율성
상황에 맞는 적절한 자료구조를 사용하게 되면 데이터 처리의 효율을 높일 수 있습니다.
간단한 예를들어 자료구조에는 배열과 리스트라는 데이터 처리 기법이 있습니다.
다음에 설명하겠지만 여기서는 배열은 탐색에 용이하고 리스트는 데이터 추가, 삭제에 용이하다는 점만 말하겠습니다.
데이터를 검색해야하는 일이 많은 작업에서는 리스트 보다는 탐색에 용이한 배열이 더 효율성이 좋습니다.
이렇게 상황에 맞게 적절한 자료구조를 사용하여 효율을 높일 수 있습니다.
2.추상화
추상화란 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려내는 것을 의미합니다.
즉, 자료구조의 내부 구현보다는 자료구조를 어떻게 사용하는지에 대해서만 알고 있으면 사용할 수 있습니다.
앞서 잠깐 설명한 리스트를 사용하려면 데이터 추가, 삭제에 대한 메서드를 알고있으면 리스트를 이용하여
데이터를 추가, 삭제할 수 있다는 의미입니다.
자료구조를 구현한 언어에 따라 내부적인 구조, 코드는 다르겠지만 추상적인 개념에 대해서만 알고 있으면
사용하는데 큰 무리가 없기때문에 언어에 종속적이지 않다는 특징이 있습니다.
3. 재사용성
자료구조를 이용하여 데이터를 처리할 경우 해당 자료구조의 인터페이스만을 이용하여 데이터를 처리하도록
모듈화가 가능합니다.
자료구조를 설계할 때 특정 프로그램에 맞추어 설계하지 않고 다양한 프로그램에서 사용될 수 있도록
범용화하기 때문입니다.
자료구조의 분류
1. 단순 구조
- 정수, 실수, 문자 등의 기본 자료형
2. 선형 구조
-
하나의 자료 뒤에 하나의 자료가 존재하는 구조입니다.
-
자료들의 관계가 1:1 입니다.
3. 비선형 구조
- 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 구조입니다.
- 자료들의 관계가 1:n, n:n 입니다.
4. 파일 구조
- 파일에 대한 구조입니다.
'개발 공부 > 자료구조' 카테고리의 다른 글
큐(Queue) Java로 구현하기 (0) | 2020.02.12 |
---|---|
스택(Stack)이란 (0) | 2020.02.11 |
큐(Queue) 란 (0) | 2020.02.10 |
리스트(List) (0) | 2020.02.07 |
배열이란 (0) | 2020.01.20 |
댓글