본문 바로가기

자료구조

자료 구조란?

728x90

자료구조(DataStructure) 란,

사전적 의미로는 CS(ComputerSience)에서 데이터의 접근 및 수정을 효율적으로 하기 위한 조직/체계 를 의미한다고 한다.

많은 양의 데이터를 관리할 때 그 안에서 공통된 규칙이나 패턴을 찾아 체계적인 메커니즘이 잡혀 있어야 한다.

조금은 추상적일 수 있는 말이지만 예시를 보고 이해해보자.

 

현실에서의 자료구조

대표적인 현실 자료구조로는 학생들을 관리하는 학교에서 찾아 볼 수 있다. 학교는 수십명에서 수백명에 이르기까지 수많은 학생들을 관리하고 있다.  

 

이때 '홍길동' 이라는 학생을 무작위로 나열된 학생명단에서 찾으려 한다면 매우 어려울게 분명하다.  

예를 들어 학생이 1000명의 학교의 무작위로 나열된 학생 명단에서 찾는다고 했을때 최소 1회, 최악의 경우 학생수만큼인 1000번의 비교를 해야 학생을 찾을 수 있다.

 

그러나 각 학생마다 학년/반/출석번호 의 정보를 부여하면, 해당 학생을 더욱 효율적으로 찾아낼 수 있다. 

홍길동의 학생증에 3학년 2반 15번 이라는 정보가 있다면, 1000명에서 학년이 3학년인 학생들로 범위를 좁히고 다음은 2반으로 좁힌다음 출석번호가 15번인 학생을 찾으면 된다. 찾으려는 학생의 정보만 알고 있다면 단 3회의 비교횟수로 원하는 학생을 찾을 수 있는 것이다.

 

이처럼 수많은 데이터들이 지니고 있을 때, 원하는 데이터에 효율적인 접근을 할 수 있도록 하는 것이 바로 자료구조이다.

 

 

대표적인 자료구조

자료구조에는 다양한 종류가 있다. 그중 대표적으로는 

 

배열 리스트스택, 트리가 있다.

 

 

728x90