01. 자료구조(Data Structure)란?
- 자료를 효율적으로 관리하기 위한 구조 (관리: 저장/삭제/탐색)
- 목적에 맞게 사용한 자료구조 --> 실행시간 단축 && 메모리 용량 절감
- 알고리즘과 밀접한 관계
02. 자료구조 분류
선형 자료구조(Linear Data Structures) | 비선형 자료구조 (NonLinear Data Structures) |
|
정의 | 데이터가 1:1 관계를 가지며, 순서대로 배치되는 구조 | 데이터 간의 관계가 1:N 또는 N:M과 같은 형태로, 계층적이거나 복잡한 구조 |
특징 | 데이터가 선형적으로 연결되어 있음 -> 순차적으로 탐색하거나 접근하기 쉬움 |
데이터간의 연결이 비선형적 -> 탐색 및 처리방식이 더 복잡함 |
예시 | 배열 (Array) , 연결리스트 (Linked List) , 스택 (Stack) /큐 (Queue) /데크(Deque) , 해시 테이블(HashTable) |
트리 (Tree) , 이진 탐색 트리(Binary Search Tree), 그래프 (Graph) , 힙(Heap) /우선순위 큐(Priority Queue) , 트라이(Trie) |
- 데이터의 연결 방식과 구조적인 특징에 대한 일반적인 기준임
-> 자료구조를 활용하는 목적이나 방식에 따라 구체적인 정의가 약간 달라질 수 있음
- 1:N관계라도 특정 상황에서는 선형구조처럼 다룰 수 있음 (예: 트리의 특정 경로를 배열로 표현) //예제 업로드 예정
03. 자료구조의 구현
- 추상 자료형(Abstract Data, ADT) : 자료 형태와 자료에 대한 연산을 정의, 구체적인 구현 방법은 명시하지 않음
- 대부분의 구현 방법은 JAVA에서 class로 제공: 각 자료구조를 이해한 후, 코딩테스트나 현업에서 알맞은 상황에 골라서 사용
- [자료구조 with JAVA]에서는 처음부터 구현하는 예제를 다룰 예정
'자료구조 with JAVA' 카테고리의 다른 글
[JAVA] 자료구조 - 데크 (Deque) (0) | 2024.12.30 |
---|---|
[JAVA] 자료구조 - 큐(Queue) (1) | 2024.12.30 |
[JAVA] 자료구조 - 스택(Stack) (0) | 2024.12.30 |
[JAVA] 자료구조 - 연결 리스트(Linked List) (0) | 2024.12.05 |
[JAVA] 자료구조 - 배열(Array) (3) | 2024.12.01 |