#1 자료구조

이승철·2022년 11월 15일
0

자료구조

목록 보기
1/1

1. 자료구조란

자료구조란 컴퓨터과학에서 데이터를 저장하고, 관리하는 방법을 뜻합니다.

프로그래밍에서 자료구조란 데이터를 취급하는 방법이므로 가장 기초적인 이론이며, 이 이론을 튼실히 다지지 않고 상위의 레벨로 진입하기 어려우므로 반드시 내용에 대해서 이해하고 각 자료구조를 구현할 수 있는 능력을 가져야 합니다.

현대의 대부분의 프로그래밍 언어는 기본적인 자료구조의 구현체를 제공하므로 단순히 가져다가 사용할 수 있지만, 기초적인 이론을 모른다면 활용도가 낮아지고 응용도 역시 낮아질 수 밖에 없습니다.

이 글타래는 기초적인 자료구조를 소개하고 JAVA를 활용하여 직접 구현해 봄으로써 어떤방식으로 자료구조를 구성하고 저장하고 나아가 추가와 삭제가 이루어지는지 알아보겠습니다.

2. 자료구조의 종류

자료구조의 종류는 크게 선형자료구조 (Linear Data Structrue) / 비선형자료구조(Non-Linear Data Structure)로 나뉩니다.

2-1. 선형 자료구조 (Linear Data Structrue)

선형자료구조란 여러 데이터의 배열이 한쪽 방향으로 이어지는 자료구조를 의미합니다. 하나의 자료(데이터) 다음에는 한개의 데이터만 존재하는 자료구조입니다.

선형자료구조의 종류로는 아래와 같은 자료구조가 있습니다.

배열

배열은 연속된 공간에 배치되어진 자료구조입니다. 하나의 데이터 바로뒤에 데이터가 실제로 존재함이 보장됨으로써, 물리적/논리적으로 같은 위치에 데이터가 존재합니다.

연결 리스트

배열과는 다르게 논리적으로는 연결된 구조이지만 물리적으로는 연결되어 있지 않고 흩어져서 존재하는 자료구조입니다.

연결되어 있지 않은 데이터들을 논리적으로 합치기 위하여 연결 리스트는 다음 데이터의 주소를 가지고 있거나 이전 데이터의 주소를 가지고 있는등의 연결지점이 존재합니다.

스택

스택은 스택내에 가장 마지막에 입력된 데이터가 가장 먼저 출력되는 LIFO(Last Info First Out) 또는 FILO(First Input Last Out)의 특성을 가지고 있는 자료구조입니다.

큐는 스택과 반대로 가장 먼저 입력된 데이터가 가장 먼저 출력되는 FIFO(First Inpu First Out)의 특성을 가지고 있습니다.

2-2. 비선형 자료구조 (Non-Linear Data Structure)

비선형 자료구조란 선형자료구조와는 반대로 하나의 데이터뒤에 여러개의 데이터가 존재할 수 있는 구조를 의미합니다.

비선형자료구조의 종류로는 아래와 같은 자료구조가 있습니다.

트리

트리는 단방향의 하나의 데이터에 대해 1:N의 데이터를 자식으로 갖는 구조를 말합니다. 자식인 데이터는 그 스스로 1:N의 자식을 가질 수 있어 마치 나무의 모양과 같이 뻗어나간다고 하여 트리라고 불리웁니다.

그래프

그래프는 트리와 달리 하나의 데이터에 대해 N:M의 관계를 갖는 데이트구조입니다. 부모-자식간의 관계로 정의할 수 있는 트리와는 달리 그래프는 데이터의 방향이 정해져 있지 않습니다.

다음 블로그에서 각 자료구조에 대해 자세히 알아보고, 자바를 통해 구현을 해보도록 하겠습니다.

profile
천방지축개발자

0개의 댓글