자료구조란?
- 데이터를 표현하고 저장하는 방법이다.
자료구조는 컴퓨터에서 자료를 효율적으로 관리하고 구조화시키는 방법으로 한 마디로 말하자면 '데이터의 표현 및 저장 방법'이라고 할 수 있다.
자료구조는 정수, 실수, 문자, 문자열과 같은 단순구조 뿐만 아니라 리스트, 스택, 큐와 같은 선형구조, 트리, 그래프와 같은 비선형 구조, 순차파일,색인파일, 직접파일과 같은 파일 구조로 크게 분류된다.
따라서 int형 변수도 데이터를 표현하고 저장하는 하나의 방법이므로 넓은 의미에서 자료구조에 속한다고 볼 수 있다.
자료구조와 알고리즘
자료구조와 알고리즘은 연관성이 높다.
각각의 과목을 공부하기 위해 도서관에 가서 책을 고르면서 보니, 두 내용을 한 번에 다루는 책이 많았다.
알고리즘 책에서 자료구조에 대한 설명이 들어있거나 그 반대로 자료구조 책 안에 알고리즘 내용을 다루는 것을 보았다.
이처럼 자료구조와 알고리즘은 서로 연관되어 있다.
자료구조가 '데이터의 표현 및 저장 방법'을 말한다면, 알고리즘은 '문제의 해결 방법'을 뜻한다.
예를 들어, 1부터 10까지의 합을 구하는 문제를 풀때, 먼저 숫자들을 다음과 같이 배열에 담아 표현할 수 있다.
arr = [1,2,3,4,5,6,7,8,9,10]
이처럼 배열을 사용하여 데이터를 표현하고 저장한 것은 자료구조를 활용한 것이다.
그러면 배열에 담긴 숫자들의 합을 다음과 같이 구할 수 있다.
sum = 0
for i in arr:
sum += i
이는 배열에 저장된 모든 값의 합을 구하는 알고리즘이라고 할 수 있다.
이렇게 자료구조와 알고리즘은 밀접한 관계를 가지고 있고, 선택한 자료구조에 따라 효율적인 알고리즘을 결정할 수 있다.
자료구조의 분류
Data Structures 카테고리에서는 선형구조와 비선형구조를 공부하고 정리할 것이다.
- 선형 구조: 자료를 구성하는 데이터를 순차적으로 나열시킨 형태
- 비선형 구조: 하나의 자료 뒤에 여러 개의 자료가 존재할 수 있는 것을 의미합니다.
참고
- 윤성우의 열혈 자료구조
'Computer Science > Data Structures' 카테고리의 다른 글
맵 Map과 해시 Hash (2) | 2022.05.18 |
---|---|
[비선형 구조] 그래프 Graph (0) | 2022.05.15 |
[비선형 구조] 트리 Tree (0) | 2022.05.15 |
[선형 구조] 스택과 큐 (0) | 2022.05.14 |
[선형 구조] 리스트 (0) | 2021.07.18 |