자료구조 개괄

Kyung yup Lee·2021년 3월 23일
0

자료구조

목록 보기
11/18

자료구조

자료구조의 정의

자료

현실 세계로부터 수집한 사실이나 개념의 값 또는 이들의 집합. 특정 용도로 사용하기 위해 처리/가공한 것을 정보(Information)이라 한다.

자료구조

세상에는 다양한 데이터가 존재하고 산발적으로 퍼져있다. 해당 데이터를 모아 정리하여 사람이 받아들이기 쉽게 추상적으로 정리한 것을 자료 구조라 한다. 구체적으로 자료구조는 자료 값의 모임, 자료 간의 관계, 그리고 자료에 적용할 수 있는 함수나 명령을 의미한다.

예를 들어, 탈모가 있는 3대 가족이 있다고 하자. 할아버지는 100K의 머리카락이 있고, 큰아들은 100K의 머리 작은 아들은 10K의 머리카락이 있다. 작은 아들이 손자를 낳아서 0K의 머리카락을 가졌다고 한다. 각각의 개체가 가지고 있는 머리카락의 개수는 자료의 모임이다. 자식을 낳을 수록 머리카락이 줄어드는 것은 자료의 관계이고, 만약 탈모의 대를 끊기 위해 작은 아들을 호적에서 파버린다면 이 자료에 적용할 수 있는 함수를 의미한다.

자료구조의 특징

자료구조는 효율성, 추상화, 재사용성을 갖추어야 한다. 자료구조를 만들었는데 효율적이지 못하다면 굳이 머리 써가면서 구조를 갖출 필요가 없을 것이다. 추상화와 재사용성은 맥락을 같이 하는데, 구체적일수록 재사용이 힘들다. 자료구조의 길이가 정해져있다거나, 값의 범위가 지정되어있거나 하는 구체성이 있으면, 다양한 상황에 적용하기가 힘들것이다. 때문에 최대한 추상적이게 구현되어야 하고, 어떤 상황에도 적용할 수 있는 재사용성을 갖추어야 한다.

자료구조의 종류


자료구조는 선형 구조와 비선형구조로 구분된다. 선형 자료구조는 1자로 자료가 나열된 자료구조를 뜻한다. 대표적으로 배열과 연결리스트가 있고, 스택과 큐는 배열이나 연결리스트에 특별한 함수로만 자료구조를 다룰 수 있도록 제한함으로써 효율성을 높힌 자료구조를 뜻한다.

비선형구조는 일반적으로 그래프를 뜻하며, 일자로 데이터가 나열된 것이 아닌, cycle을 이루거나, 데이터가 여러개 연결되는 자료구조를 의미한다. 이 구조에서 Top Node와 자식노드로 구성되는 비선형구조가 트리 자료구조이다.

자료구조의 필요성

프로그램에서는 다양한 자료를 임시(메모리)/영구적(파일시스템,데이터베이스)으로 저장하여 사용한다.

만능인 자료구조는 없다. 상황에 따라 적절한 자료구조를 선택하여 사용해야 한다.

자료구조의 선택(자료를 어떻게 저장할지)는 프로그램에 다음과 같은 중대한 영향을 끼친다.

  • 필요한 자료에 효율적으로 빠르게 접근할 수 있게 한다.
  • 자료의 중복을 최소화하여 저장장치를 효율적으로 사용할 수 있게 한다.
  • 자료구조 별로 적절한 알고리즘을 기계적으로 적용할 수 있다.
  • 동료들과 협업하는 데에 큰 도움이 된다. (잘못된 창의성을 발휘하지 않게 도와준다.) 가장 중요

reference : 패스트캠퍼스

profile
성장하는 개발자

0개의 댓글