본문 바로가기
Computer Science/자료구조

자료구조

by AI_Wooah 2022. 2. 7.

자료구조란?

컴퓨터에서 데이터 사이의 논리적 관계를 표현하고 조직화하는 방법

프로그램은 자료구조와 알고리즘이 합쳐져서 만들어진다.

자료구조를 고려하여 효율적인 알고리즘을 짜야 좋은 프로그램이 만들어진다.

 

자료구조는 수많은 데이터들을 규칙에 따라 논리적으로 저장하여 알고리즘에서 효율적으로 처리나 수행을 할 수 있도록 구분해놓은 기준이다.

 

자료란 현실에서 실제 만지거나 볼 수 있는 것을 관찰하여 팩트를 수집한 사실이나 값이다.

 

정보는 특정 목적에 맞추어 적절한 의사결정을 할 수 있도록 자료를 가공하고 처리한 지식의 개념을 말한다.

 

자료구조의 특징은 추상화, 효율성, 재사용성이 있다.

 

추상화는 복잡하고 다양한 객체를 개념화 하고 표현하기 위해 자료들이 가지고 있는 공통적인 핵심 개념이나 기능을 뽑아 정의한 것이다.

 

효율성은 데이터를 적적하게 구조화하고 상황에 맞는 알고리즘을 사용하면 데이터 처리의 효율을 극대화시킬 수 있다.

 

재사용성은 한 데이터 구조 안에 동일한 내용이 빈번하게 생성될 때 같은 값을 여러 번 계산하지 않고 재사용하여 성능을 향상시킬 수 있다.

 

 

기본 자료구조

 

자료구조는 크게 선형구조와 비선형구조로 분류할 수 있다.

 

선형구조에는 배열, 연결리스트, 스택, 큐가 있다.

 

배열

동일한 데이터 유형의 데이터를 저장할 수 있는 고정된 크기의 구조다. 안의 값들이 인덱싱 되어있기 때문에 임의로 액세스가 가능하다.

 

연결리스트

서로 연결된 선형 순서의 순차적 구조이다. 데이터에 순차적으로 접근해야 하며 임의적으로 접근할 수 없다.

 

스택

라스트 인 퍼스트 아웃으로 맨 마지막에 들어온 요소가 제일 처음 방출된다.

 

처음 들어온 요소가 제일 처음 배출되는 형태로 대기열이라고도 한다.

 

 

비선형구조에는 트리, 그래프가 있다.

 

그 중에서도 이진트리는 아주 많이 쓰이는데 힙의 경우도 부모 노드가 자신의 값을 자녀에게 비교하고 그에 따라서 배치된다.

 

트리

데이터를 계층적으로 저장할 때 가장 효율적인 구조이다. 모든 트리는 루트 노드가 있으며 각각 부모자식 관계를 형성하고 연결되어있다.

 

그래프

노드와 그 노드를 연결하는 선을 하나로 모아놓은 자료구조다. 연결되어 있는 자료들의 관계를 표현하기에 적합하다.

 

 

실생활에서도 모두가 접할 수 있고 항상 사용했던 자료구조는 바로 파일 구조이다. 파일구조는 이진트리의 대표적 사례인데 폴더 계층을 나누고 구조를 만든다. 또한 폴더나 파일을 복사하여 재사용 할 수 있으며, 위치를 이동하거나 삭제할 수 있다.

반응형

댓글