본문 바로가기

자료구조

[자료 구조] Stack과 Queue 목차StackQueueStack vs Queue확장 구조 Stack후입선출 (LIFO: Last In, First Out) 방식의 자료구조입니다. 즉, 가장 나중에 들어온 데이터가 가장 먼저 나가는 구조입니다. 1. Stack 구조0번부터 넣은 후, 4번을 가장 마지막에 넣은 상태입니다.Top : 가장 위에 있는 데이터 위Bottom : 가장 아래에 있는 데이터 위치PUSH : 데이터를 넣는 행위POP : 데이터를 빼는 행위 2. Stack 특징한 쪽 끝에서만 데이터 삽입과 삭제가 일어납니다.재귀 호출, 되돌리기(Undo) 기능 등에 적합합니다.3. 사용 예시웹 브라우저의 뒤로 가기(Back) 기능재귀 함수의 호출 스택수식 계산 (후위 표기법 등)자바 JVM Stack 메모리DFS (깊이 우선 .. 더보기
[자료구조] 동적 배열(Dynamic Array)과 연결 리스트(Linked List) 차이 동적 배열 (Dynamic Array)데이터를 순차적으로 저장하고, 크기를 동적으로 조절 할 수 있는 배열 자료 구조이다. 일반적인 배열은 선언 시 크기가 고정되지만, 동적 배열은 데이터의 삽입/삭제에 따라 자동으로 크기를 확장하거나 축소할 수 있습니다. 1. 동적 배열의 구조변수 : 실제 메모리 공간의 주소를 담고 있는 변수입니다.크기(Size) : 현재 배열에 저장된 요소의 개수입니다.용량(Capacity) : 배열이 재할당 없이 저장할 수 있는 최대 요소 수입니다. 2. 동적 배열의 특징일반 배열을 감싼 객체 형태(클래스)로 구현되어 있으며, 동적으로 사용할 수 있게 해주는 내부 로직들이 존재한다.배열 크기가 고정되어있지 않고 필요에 따라 자동(내부로직)으로 증가(또는 감소) 합니다.보통 요소 .. 더보기
[Java] Queue 자료구조와 Queue 인터페이스란? Queue 자료구조선입 선출(First In, First Out, FIFO) 방식의 자료구조이다. Queue 인터페이스선입선출(FIFO) 구조를 정의하고, 큐 자료구조에 필요한 기본 동작(메서드들)을 약속하는 추상적인 인터페이스이다. import java.util.Queue;자바 util 패키지에 포함되어 있다. 1. 객체 생성Queue set = new Queue(); // ❌ 불가능Queue set = new LinkedList(); // ✅ 가능Queue set = new PriorityQueue(); // ✅ 가능Queue set = new ArrayDeque(); // ✅ 가능Queue set = new concurrentLinke.. 더보기
[Java] Set 자료구조와 Set 인터페이스란? Set 자료구조중복을 허용하지 않는 자료구조이다. Set 인터페이스중복을 허용하지 않는다. (같은 객체를 두 번 이상 저장할 수 없다.)순서를 보장하지 않는다. (HashSet의 경우)null 값 저장 가능하다. (단, 하나만) import java.util.Set;자바 util 패키지에 포함되어 있다. 1. 객체 생성Set set = new Set(); // ❌ 불가능Set set = new HashSet(); // ✅ 가능Set set = new LinkedHashSet(); // ✅ 가능Set set = new TreeSet (); // ✅ 가능Java에서 제공하는 Set 인터페이스(Set)는 객체를 직접 생성 ❌. (추가 정보 확인 : https://kimyongjun0129.tistory.c.. 더보기
[Java] List 자료 구조와 List 인터페이스란? List 자료구조순서가 있는 데이터 집합을 표현하는 자료구조이다.데이터 추가된 순으로 나열된다.중복을 허용한다.각 요소는 인덱스를 통해 순서대로 접근 가능하다.데이터의 삽입, 삭제, 검색 등이 가능하다. List 인터페이스순서가 있는 요소들의 컬렉션(Collection)을 정의하며, 중복된 요소를 허용한다.import java.util.List;자바 util 패키지에 포함되어 있다. 1. 객체 생성List list = new List(); // ❌ 불가능List list = new ArrayList(); // ✅ 가능List list = new LinkedList(); // ✅ 가능List list = new Stack(); // ✅ 가능Java에서 제공하는 List 인터페이스(List)는 객체를 직.. 더보기
[Java] Map 자료구조와 Map 인터페이스란? 1. Map 자료 구조Map은 키(Key)와 값(Value)의 쌍으로 데이터를 저장하는 자료구조이다. 배열이나 List처럼 순서(index)로 접근하는 것이 아니라, 고유한 키를 이용해서 값을 찾을 수 있다. 2. Map 인터페이스import java.util.Map;Java.util 패키지에 Map 인터페이스가 포함되어 있어서 import 하면 된다. 1. 객체 생성Map map = new Map(); // ❌ 불가능Map map1 = new HashMap(); // ✅ 가능Map map2 = new TreeMap(); // ✅ 가능Map map3 = new LinkedHashMap(); // ✅ 가능Java에서 제공하는 Map 인터페이스(Map)는 객체를 직접 생성 ❌.(추가 정보 확인 : ht.. 더보기