Computer Science/DataStructure

Data Structure란?

자료구조(資料構造, 영어: data structure)는 

컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다.

더 정확히 말해, 자료 구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다.

(위키백과)

 

쉬운 예시로 생활코딩에서의 설명 내 식으로을 적어보자.

자료구조 (Data Structure)란?

A와 B란 사람이 존재합니다.

A는 미니멀리스트라서 집안 살림이 매우 적습니다.

그래서 집에 양말이나 옷가지등의 물건을 흩뿌려 놓아도 쉽게 찾을 수 있습니다.

한편 B는 저장강박증이 있어 온갖 잡동사니가 집에 굴러다닙니다.

B도 마찬가지로 양말이나 옷가지등의 물건이 흩뿌려져 있는데 아침에 출근할 때 마다 이를 찾기가 매우 어렵습니다.

그래서 B는 수납장을 이용해서 양말, 옷가지, 책 등을 카테고리에 맞춰 정리해서 찾기가 매우 수월해졌습니다.

이 물건을 데이터, 수납장을 구조(Structure)라고 생각하면 대강적인 개념이 잡힐 겁니다.

즉 데이터를 사람이 이용하기 편하도록 만들어두는 구조 입니다.

더불어 빠질 수 없는 것이 데이터를 쉽게 꺼내기 위한 방법인데 이것이 알고리즘이 되겠습니다.

 

자료구조의 분류

자료구조 분류

 

컴퓨터에서 사용하는 자료구조를 중심으로 전체 분류를 살펴 보겠습니다.

단순구조(Simple Structure)

True/False, 정수, 실수, 문자 및 문자열과 같이 컴퓨터가 기본적으로 제공하는 자료형

선형구조(Linear Structure)

데이터들이 일렬로 쭉 저장되어 있는 형태

저장되는 자료의 전후관계가 1:1 (리스트, 스택, 큐 등)

비선형구조(Non-Linear Structure)

데이터가 트리 형태로 저장되어 있다고 생각하고 사용하는 자료구조

데이터 항목 사이의 관계가 1:n 또는 n:m (트리, 그래프 등)

파일구조(File Structure)

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

서로 관련된 필드들로 구성된 레코드의 집합인 파일에 대한 자료구조


자바의 Collections JCF(Java Collection Framework)

 

JCF

Collection(컬렉션)

 

자바에서 '목록성 데이터를 처리하는 자료구조'의 통칭

자료구조(Data Structure)는 어떤 정보를 담는 것을 의미하여,

하나의 데이터가 아닌 여러 데이터를 담을 때 사용하는 것이다.

배열이 가장 기본적인 자료구조이며, DTO 또한 자료를 담는 하나의 방식이라고 볼 수 있다.

 

* 자바에서의 자료구조 유형

  • 순서가 있는 목록이며 중복을 허용하는 List
  • 순서에 구애받지 않으며 중복을 불허하는 목록인 Set
  • 먼저 들어온 것이 먼저 나가는(FIFO) Queue
  • Key-Value 형태로 저장, 순서무관, key의 중복 불허, value의 중복 허용하는 Map

 


참조

 

ko.wikipedia.org/wiki/%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0

 

자료 구조 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 자료구조(資料構造, 영어: data structure)는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다.[1][2][3] 더 정확히 말해,

ko.wikipedia.org

velog.io/@filoscoder/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%A2%85%EB%A5%98%EC%99%80-%EB%B6%84%EB%A5%98

 

[Data structure] 자료구조 종류와 분류

컴퓨터의 데이터 취급 방법 컴퓨터가 입력받는 자료형(Data type) 또는 처리해야 하는 자료형의 모양은 어떤 것이 있을까요? 실제 컴퓨터는 0과 1만을 다룰 수 있기 때문에 다룰 수 있는 기본형의

velog.io

fabl1106.github.io/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0/2019/04/12/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-06.-%EC%84%A0%ED%98%95%EA%B5%AC%EC%A1%B0,-%EB%B9%84%EC%84%A0%ED%98%95%EA%B5%AC%EC%A1%B0.html

 

자료구조 06. 선형구조, 비선형구조

선형구조와 비선형구조 비교

fabl1106.github.io

jktech.tistory.com/22

 

Java 자료구조 - List, Set, Map

- Collection 이란? Collection은 자료구조 List, Set 의 구현 객체이다(Interface). 하지만 Map 같은경우 List, Set과 달리 Key-Value 라는 구조적인 차이가 있어 Collection Interface를 구현(상속)하지 안고..

jktech.tistory.com

blog.naver.com/PostView.nhn?blogId=milkoon1&logNo=220860136754&parentCategoryNo=&categoryNo=171&viewDate=&isShowPopularPosts=false&from=postView

 

[IT지식] 자료 구조 list, set, map의 차이

자료구조는 list, stack, queue, hash table이 있다.그 중에서 list, set, map의 차이점에 대해 알아보자 1...

blog.naver.com

tenlie10.tistory.com/10

 

[Java | 자바] Collection이란?(1) - 개요

* 본 내용은 <자바의 신>을 참고하여 작성하였습니다. Collection(컬렉션) 자바에서 '목록성 데이터를 처리하는 자료구조'를 통칭한다. 자료구조(Data Structure)는 어떤 정보를 담는 것을 의미하여, 하

tenlie10.tistory.com

 

'Computer Science > DataStructure' 카테고리의 다른 글

Implement Linked List  (0) 2021.04.26
Linked List (연결 리스트)  (0) 2021.03.07
ArrayList  (0) 2021.02.25
List (리스트)  (0) 2021.02.25
Array (배열)  (0) 2021.02.25