CS/자료구조

자료구조란 무엇인가?

독서, 운동 그리고 개발 2024. 6. 15. 13:41

자료구조란 무엇이고 왜 필요한가?

자료구조는 데이터를 관리, 저장 방법 이다.
우리는 일상 생활속에서 자료구조를 활용하는 삶을 살고 있는데, 옷장을 예를 들어보자

실제로 필자가 사용하는 옷장과 구조다. 만일 옷장에 옷을 한번만 넣고 다시는 빼지 않아도 된다고 하면 어떻게 정리를 할것인가? 옷의 분류를 생각을 하지 않고 그 때려 박아 넣을 것이다. 이렇게 하면 옷장의 빈공간 없이 최대한으로 옷장을 사용할 수 있을 것이다. 하지만 나중에 정리한 옷을 다시 찾기는 여간 어려운게 아닐것이다.

우리는 바쁜 현대 문명인으로서 옷을 빨리 찾아서 입어야 한다. 보통의 사람이라면 옷을 어떻게 정리를 할까?

실제로 필자의 옷장 정리 순번이다. 이렇게 정리하면 아침에 빠르게 내가 원하는 옷들을 찾아서 선택할 수 있다. 그러나 이렇게 사용하다 보니 양말과 속옷의 빈공간이 너무 늘어나게 돼서 효율적이지 못한 느낌이 들었다.

그래서 위의 사진처럼 최종적으로 부피가 작은 양말이랑 속옷은 같은 공간을 활용하게 만들었다.

한 여름이 되면서 수건이 많아졌다. 그렇다면 밑의 사진 중 왼쪽처럼 정리를 할것인가 오른쪽처럼 정리를 할 것인가?

Image 1 Image 2

보통은 오른쪽과 같이 같은 종류를 서로 붙여 놓을 것이다. 만일 옷장의 높이가 100층이라고 생각을 해보자 가장 상단의 수건 상자를 열었을 때 수건이 없으면 다시 맨 밑으로 와서 수건 상자를 열어야 할것이다. 이것은 여간 귀찮은 것이 아니다.

위의 상황을 컴퓨터에 대입해서 보면 옷 = data, 옷장 = memory라고 볼 수 있다. 우리가 옷장을 정리한 이유는 무엇이었는가? 옷을 빨리 찾기 위해서 그리고 옷장을 효율적으로 활용하기 위해서였다. 자료구조도 마찬가지다.

자료구조 왜 필요할까?

  1. 데이터를 찾는 속도를 높이기 위해서
  2. 메모리의 효율을 높이기 위해서

자료구조의 종류에는 무엇이 있는가?

데이터를 저장 및 관리 할 때 마스터키처럼 하나의 방법으로만 사용을 할 수가 없다. 옷장을 정리하는 방법과 편의점 매대를 정리하는 방법이 다르듯이 컴퓨터의 자료구조도 각자의 상황에 맞는 방법이 필요하다. 그렇다면 컴퓨터에서 사용하는 대표적인 자료구조의 종류는 무엇일까?

대표적으로 선형구조에는 배열, 리스트, 스택, 큐 등이 있고 비선형구조에는 트리와 그래프가 있다.
다음 글부터는 이중 선형구조와 비선형구조 자료구조에 대해서 알아보겠다.