자료구조 with JAVA

[JAVA] 자료구조 - 소개

beginner-in-coding 2024. 12. 1. 19:21

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. 자료구조의 구현

  1. 추상 자료형(Abstract Data, ADT) : 자료 형태와 자료에 대한 연산을 정의, 구체적인 구현 방법은 명시하지 않음
  2. 대부분의 구현 방법은 JAVA에서 class로 제공: 각 자료구조를 이해한 후, 코딩테스트나 현업에서 알맞은 상황에 골라서 사용
  3. [자료구조 with JAVA]에서는 처음부터 구현하는 예제를 다룰 예정