자료구조(Data Sturcture)란?

이지연·2020년 10월 23일

자료구조

목록 보기
1/1

자료구조(Data Sturcture)란?


왜 자료구조를 공부하지?

왜 자료 구조를 공부하려고 하나요??

프로그래밍을 하면서 코드를 좀 더 효율적으로 짜기위해서 공부를 해봐야 겠는데 무얼 먼저 해야하나 고민을 하였습니다.🙄

그래서 이전에 학교에서 배웠던 알고리즘과 자료구조를 제대로 봐야겠다는 생각이 들었습니다. 그래서 욕심 부리지 말고 하루에 자료구조를 이해하는 방향으로 일정량을 공부하고, 알고리즘을 하루에 한문제씩이라도 풀겠다고 목표를 정하게 되었습니다.

그럼 자료구조란 정확히 뭔지 부터 알고 시작하겠습니다.

자료구조란 무엇인가?

자료구조란 무엇인가요??

자료구조란 컴퓨터에서 사용할 자료를 더 효율적으로 저장하고 처리할 수 있도록 자료의 특성과 사용용도에 따라 분류하고 정리하여 구조화 한 것

제 생각엔 자료구조는 도서관의 책으로 비유하면 될 것같습니다.
우리는 도서관에서 책을 찾을 때 어떻게 찾나요?

저는 고등학교 3년 내내 도서부에서 일을 하였습니다. 대부분 학생들은 자신들이 빌리려고 하는 책 제목이나 책 저자를 알고 옵니다.

그러면 제게 와서


A양 :  '알고리즘이란 그것은 무엇인가'라는 책 빌리고 싶은데, 어디있나요?'

나 : '글쎄요. 책을 놔둔 위치가 정해져 있지않아서 0-900번까지 나눠져 있긴 한데 한번 같이 찾아볼까요?'

A양 : (엄청 놀란 목소리로) 네..?😱

하면 그 분은 화가나서 다시는 도서관에 오지 않을지도 모릅니다...ㅠㅠ
그리고 한 학생이 원하는 책을 찾으려면 얼마나 시간이 걸릴지 감도 안옵니다.

그런데!!

0-90번대는 총류라고 백과사전같은 것을 두는 곳이고, 100는 철학 서적 200번대는 종교 .....900번대는 역사 이런식으로 분류를 해놓습니다. 그리고 또, ㄱㄴㄷ 초성으로 책을 꽂는 위치를 도서관 분류 기준을 정하게 됩니다.

이렇게 미리 책의 분류 기준이 명확하면 A학생이 와서 위치를 물어보면 우리는 그 기준표대로 찾아주기만 하면 됩니다.

그 덕분에 저는 학생들의 책을 찾아주는데 걸리는 시간이 훨씬 줄어들었습니다. 그리고 다른 학생이 와도 바로 찾아 줄수 있습니다.

여기서 책을 저는 데이터로 비유를 해보았습니다.
이렇게 데이터(자료)를 효율적으로 저장하고 꺼내기 쉽게 만드는 것 자체가 자료 구조라고입니다.
아마 이 데이터가 거대한 1억, 2억건 들이라면 더 효과적으로 관리하는데 중요한 점이라고 할 수 있습니다.

자료구조의 종류는 몇가지가 있는데요. 그 해당 자료구조의 장점을 활용한다면 원하는 상황에 따라서 정해서 정리하고 갖고 오게 할 수 있습니다.

자료구조의 장점

그래서 자료구조의 장점이 뭔가요??

자료구조를 통해 자료를 효율적으로 정리한다면 알고리즘을 구현하는데 큰 도움이 되고 구현하는 알고리즘의 시간복잡도(Time Complexity)와 공간복잡도(Space Complexity)를 최소화하는데 도움이 됩니다!

그렇기 때문에 각 프로그램마다 효율적으로 쓸 수 있는 자료구조의 특징을 잘 파악하는 게 좋습니다. 만약 잘 이용한다면 좋은 프로그램을 구현하는데 한 몫할 수 있습니다. 즉, 저의 프로그래머로서 능력이 업그레이드 되는 방법 이라고도 할 수 있겠죠?

자료구조의 종류

자료구조의 종류 알려주세요!

자료구조는 크게 두가지로 나뉩니다.

먼저, 단순구조와 그 외 나머지는 비단순구조입니다.

단순구조는 프로그래밍에서 쓰이는 자료값의 기본 데이터 타입입니다. 그림에서 보듯이 정수(Integer), 실수(Real Number), 문자(Character), 문자열(String)이 있습니다.

다음은 비단순구조를 보겠습니다.
비단순구조는 뭘까요? 말 그대로 단순한 데이터를 저장하는 구조가 아니라 여러 데이터를 목적에 맞게 효과적으로 저장하는 자료구조를 의미합니다.

1. 선형구조 2. 비선형구조 3.파일 구조 로 나눠져 있습니다.

  • 파일구조는 비선형구조에 포함된다고 생각하면 됩니다.

선형구조는 저장되는 자료의 전후관계가 1:1인 것이 특징이고, 순차리스트. 연결리스트, 스택, 큐, 데크로 구성되어 있습니다.

마지막으로 비선형구조는 데이터 항목 사이의 관계가 1:n 또는 n:m으로 트리, 그래프 등으로 구성되어 있습니다.

파일구조는 다양한 자료구조의 데이터를 파일에 저장하는 방식입니다!

간단하게라도 어떨때 쓰이는지 알고싶어요!

트리(Tree) 는 어떨때 사용할까요? 조직의 형태를 프로그래밍적으로 표현해야할 때 쓰입니다. 혹은 최상위 디렉토리부터 하위디렉토리의 관계도 트리와 같은 형태로 되어 있습니다.

그래프(Graph) 은 지도 애플리케이션을 만든다 치면, 현재 위치가 어디인지, 우리집에서 마트까지 최단거리를 파악할 때 쓰일 수 있겠습니다.

profile
Everyday STEP BY STEP

0개의 댓글