본문 바로가기

STUDY/자료구조

#1 자료구조와 알고리즘이란?

 자료구조란 ?

 - 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조

 - 데이터 구조, data structure 와 같은 의미

 - 어떤 자료구조를 사용하느냐에 따라, 코드 효율이 달라짐 

 

알고리즘이란 ?

 - 어떤 문제를 풀기 위한 절차/방법

 - 특정한 '입력'을 넣으면, 원하는 '출력'을 얻을 수 있도록 만드는 프로그래밍

 

자료구조란 알로리즘을 구현하는 데 사용하는 것으로 리스트와 연결 리스트 두가지가 있다.

이 두가지 물리적 구조를 기반으로 다양한 사용법을 구현한 자료구조가 있다.

 - 리스트(List) : 각 데이터를 연이어 저장하는 기술

 - 연결 리스트(Linked List) : 각 데이터를 임의의 위치에 저장하고 서로를 연결하는 기술

 

자주 사용하는 자료구조 

 - 배열, 스택, 큐, 트리/힙, 그래프, 데크

 

자료구조를 분류하면 단순구조, 선형구조, 비선형구조, 파일구조로 나뉜다.

 - 단순구조 : 2진수, 정수/실수, 문자/문자열

 - 선형구조 : 리스트, 연결 리스트, 데크, 스택, 큐

 - 비선형구조 : 트리, 그래프

 - 파일구조 : 순차 파일, 색인 파일, 직접 파일

 

단순구조

 T/F, 정수/실수, 문자/문자열과 같이 컴퓨터가 기본적으로 제공하는 자료형을 사용하는 경우를 말한다. 

기본 자료형을 여러 개 모아서 사용자가 필요한 자료형을 선언하는 경우도 여기에 속한다. 대부분의 프로그램이 사용자 정의 자료형을 사용하여 만든다. 사용자 정의 자료형을 선언하는 방법은 배열, 구조체, 클래스가 대표적이다.

 - 배열 : 동일한 자료형을 여러개 모은 것

 - 구조체 : 동일하거나 다른 자료형을 여러개 모은 것

 - 클래스 : 구조체에 메소드까지 포함한 것

 

선형구조

 데이터들이 일렬로 쭉 저장되어 있는 형태이다. 저장하는 방식은 리스트와 각 데이터가 다음 데이터의 위치를 가지는 연결 리스트 두 가지 방식이 있다. 사용방법에 따라 스택, 큐, 데크가 추가된다.

 

비선형구조

 데이터가 트리 형태로 저장되어 있다. 종류는 트리와 그래프가 있으며 물리적으로 보면 리스트와 연결 리스트를 이용하여 구현한다. 하지만 사용 방법이 다르므로 별도로 분리하여 생각한다.

 

파일구조

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

 

반응형

'STUDY > 자료구조' 카테고리의 다른 글

#4 큐(Queue)  (0) 2021.06.30
#3 스택(Stack)  (0) 2020.01.15
#2 리스트와 연결리스트  (0) 2020.01.13