본 문서는 2021년 12월 31일 에 작성되었습니다.
자료구조에 대한 서론을 담고 있으며, 다음과 같은 내용을 포함하고 있습니다.
수학에서의 집합은 기본적으로 불변성을 가지고 있습니다.
하지만 알고리즘에서의 집합은 동적인 특성을 가지고 있습니다.
따라서,
일반적으로 프로그래밍 언어들은 집합과 관련된 기능들을 정의해놓고 있습니다.
이러한 기능들은 해당 집합에 대한 편의성을 제공해줍니다.
예를들어,
일반적으로 다음과 같은 프로시저가 작성되어 있습니다.
프로시저란 프로그래밍 언어에서 함수 및 메서드를 의미합니다
그렇다면 자료구조란 무엇일까요?
컴퓨터 과학에서 효율적인 접근 및 수정을 가능하게 하는 자료의 조직, 관리, 저장을 의미한다. 자료구조 : 위키백과
Java나 JavaScript 등의 프로그래밍언어에서는 자료들의 집합을 배열 을 통해 다루고 있습니다. 이러한 일반적인 배열에 어떠한 특징 을 가미하여 특정 조건에서 특정 값을 꺼내는데 특화된 구조 를 가지게 하는 것이 자료구조입니다.
예를 들어,
Hesh Sort 를 하려면 일반 배열을 Hash 구조로 바꿔야하고
Binary Search 를 하려면 일반 배열을 Binary Search Tree 구조로 바꿔야 합니다.
이 시리즈에서 알아볼 자료구조는 다음과 같습니다.
ArrayList 는 메서드가 포함된 일반 배열과 크게 다르지 않기에 제외하였습니다.
Java : Collection Framework 학습기록
Java : Collection Framework 분석 및 재구축 시리즈
Introduce to Algorithm