자료구조 16

Deque - Java

DequeDeque(Deque = Double Ended Queue, 양방향 큐) 는 양쪽 끝(front, rear) 모두에서 삽입과 삭제가 가능한 자료구조입니다.Java에서는 Deque 인터페이스를 제공하며, 일반적으로 LinkedList나 ArrayDeque로 구현합니다.구현체 비교 항목 LinkedList ArrayDeque 구조노드 기반 (이중 연결 리스트)배열 기반 (원형 배열 구조)삽입/삭제 속도양쪽 끝 삽입/삭제 빠름 (O(1))양쪽 끝 삽입/삭제 빠름 (O(1))중간 접근/수정느림 (O(n))불가능(중간 인덱스 접근 지원 안 함)메모리 사용각 노드마다 추가 메모리(포인터 2개) 필요배열 크기만큼 메모리 연속 확보 필요성능많은 삽입/삭제 작업에 유리빠른 삽입/삭제 + 메모리 효율성 높음 ..

자료구조 2025.04.28

Queue - Java

QueueQueue는 FIFO(First In First Out, 선입선출) 방식으로 동작하는 자료구조입니다.Java에서는 Queue 인터페이스를 통해 다양한 구현체(예: LinkedList, PriorityQueue)를 제공합니다.먼저 추가한 데이터가 가장 먼저 제거되는 특징이 있습니다.주요 특징자료구조노드 기반(LinkedList) 또는 배열 기반(예: ArrayDeque)크기 조정필요에 따라 동적으로 크기를 조정 (특히 LinkedList 기반일 경우)접근 속도front와 rear에서 빠른 접근 가능 (O(1))삽입/삭제 속도front에서 삭제, rear에서 삽입은 빠름 (O(1))중복 허용O (같은 값을 여러 번 저장 가능)null 허용일부 구현체에서는 허용 (LinkedList는 허용, Arra..

자료구조 2025.04.28

Stack - Java

StackStack은 LIFO(Last In First Out, 후입선출) 방식으로 동작하는 자료구조입니다.Java에서는 java.util.Stack 클래스를 통해 제공되며, 기본적으로 Vector를 상속받아 구현되어 있습니다.주요 특징자료구조내부적으로 Vector(배열 기반) 사용크기 조정요소 추가 시 내부 배열을 동적으로 확장 (필요 시)접근 속도top 요소 접근은 빠름 (O(1))삽입/삭제 속도top에 대한 push/pop은 빠름 (O(1))중복 허용O (같은 값을 여러 번 저장 가능)null 허용O (null 값 저장 가능)대표 메서드package structure.stack;import java.util.Stack;public class StackClass { private final St..

자료구조 2025.04.28

LinkedList - Java

지난 포스트인 ArrayList를 이어서 이번에는 LinkedList에 대해서 정리해보겠습니다.LinkedListJava 컬렉션 프레임워크(Collection Framework) 중 하나로, 노드 기반으로 구현된 자료구조입니다.각 요소(Node)가 **데이터(data)**와 **다음 노드(next)**에 대한 참조를 가지고 있어, 삽입과 삭제가 효율적입니다.주요 특징자료구조내부적으로 **노드(Node)**를 연결하여 구성크기 조정삽입/삭제할 때 별도 크기 확장이 필요 없음 (공간은 노드 단위로 동적으로 사용)접근 속도인덱스 접근 시 느림 (O(N)) (앞에서부터 순차 탐색)삽입/삭제 속도처음/끝 삽입·삭제는 빠름 (O(1)), 중간은 느림 (O(N))중복 허용O (같은 값을 여러 번 저장 가능)null ..

자료구조 2025.04.27

ArrayList - Java

이 글을 시작으로 알고리즘에서 자주 사용되는 자료구조의 주요 메소드를 정리하는 포스트를 작성해보겠습니다. 이번 포스트에서는 ArrayList 자료구조에 대해 정리해보겠습니다. ArrayListArrayList는 Java 컬렉션 프레임워크(Collection Framework) 중 하나로, 배열 기반으로 구현된 동적 크기 배열(Dynamic Array) 입니다.배열과 비슷하지만, 크기를 자동으로 조정해주기 때문에 요소를 추가하거나 삭제할 때 편리합니다.주요 특징자료구조내부적으로 배열(Array) 사용크기 조정배열이 꽉 차면, 자동으로 1.5배 또는 2배 크기로 확장접근 속도인덱스로 접근 시 빠름 (O(1))삽입/삭제 속도중간 삽입/삭제는 느림 (O(N)) (이동 필요)중복 허용O (같은 값을 여러 번 저장..

자료구조 2025.04.27

자료구조 정의

자료구조란사전적인 의미는 자료(Data)의 집합의 의미하며, 각 원소들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한 것입니다.자료구조는 다음 그림과 같이 단순 자료구조(Primitive Data Structure)와 복합 자료구조(Non-Primitive Data Structure)로 나누어 집니다.복합 자료구조는 다시 선형 자료구조(Linear Data Structure)와 비선형 자료구조(Non-Linear Data Structure)로 구분됩니다.선형 자료구조선형 자료구조는 다음 그림처럼 데이터 요소를 순차적으로 연결하는 자료구조로, 구현하기 쉽고 사용하기도 쉽습니다. 배열(Array)과 링크드 리스트(Linked List), 스택..

자료구조 2025.04.27