이진 검색 트리(Binary Search Tree)의 구조와 Java를 활용한 구현

이진 검색 트리의 기본 개념 이진 검색 트리(Binary Search Tree, BST)는 데이터의 빠른 탐색을 위해 설계된 계층형 자료구조입니다. 원본 글에서는 이를 'B-tree'로 지칭했으나, 설명된 특성(최대 2개의 자식 노드, 좌우 크기 규칙)은 정확히 이진 검색 트리의 정의에 부합합니다. BST는 다음과 같은 핵심적인 제약 조건을 가집니다. 각 노드는 최대 두 개의 자식(Left, ...

8월 10일 20:00에 게시됨

Lua 프로그래밍 - 반복자와 메타테이블, 객체지향 프로그래밍

반복자와 제네릭 for 반복자와 클로저 먼저 간단한 반복자를 구현해보겠습니다. 반복자는 내부 상태를 유지하는 클로저를 통해 구현됩니다. -- 팩토리 함수: 테이블을 받아 반복자를 반환 local function factory(tbl) local index = 0 return function() index = index + 1 return tbl[index] end end data = {10, 20, 30} iterator = fa ...

8월 8일 21:48에 게시됨

Python 내장 함수 및 파일 입출력 활용 가이드

1. 데이터 타입 검증과 객체 확인 파이썬에서 변수의 데이터 타입을 확인하거나 객체의 속성을 조사할 때 사용하는 주요 함수들입니다. isinstance(): 특정 변수가 지정한 클래스의 인스턴스인지 확인합니다. sample_data = "Hello Python" is_string = isinstance(sample_data, str) print(is_string) # 결과: True is_list = isinstance(sample_data, list) print(is_ ...

7월 25일 16:27에 게시됨

Python 제너레이터의 작동 원리

Python에서 제너레이터(generator)는 이터레이터를 생성하는 강력한 도구입니다. 이 문서에서는 제너레이터의 개념부터 활용 방법까지 자세히 알아보겠습니다. 제너레이터 개념 제너레이터는 결과를 한 번에 리스트에 저장하지 않습니다. 대신 생성기의 상태를 유지하면서每次迭代 시 값을 반환하며, StopIteration 예외가 발생할 때까지 동작합니다. 이렇게 하면 메모리 ...

7월 16일 00:58에 게시됨

Java 컨테이너 클래스 핵심 정리

컨테이너는 객체를 저장하는 데이터 구조를 의미합니다. 자바에서는 객체를 효율적으로 관리하기 위한 다양한 컨테이너 클래스를 java.util 패키지에서 제공합니다. 1. 컨테이너 계층 구조 컨테이너 API는 Collection과 Map 인터페이스로 구분됩니다. Collection은 단일 객체 저장을, Map은 키-값 쌍 저장을 처리합니다. Collection은 다시 Set(중복 불가, 순서 없음)과 ...

6월 19일 18:19에 게시됨

파이썬에서 반복 가능한 객체와 제너레이터의 원리

컨테이너, 반복형, 반복자 개념 정리 파이썬에서는 데이터를 다루는 다양한 구조가 존재하며, 그 중 컨테이너(container)는 여러 요소를 담을 수 있는 자료구조입니다. 대표적인 예로 리스트, 튜플, 세트, 딕셔너리, 문자열 등이 있습니다. assert 1 in [1, 2, 3] # 리스트 assert 'a' in {'a', 'b'} # 세트 assert 'x' in "hello world" # 문자열 assert ...

6월 3일 17:34에 게시됨

C++ 표준 템플릿 라이브러리(STL) 핵심 알고리즘 가이드

1. 비수정 시퀀스 알고리즘 컨테이너의 데이터를 변경하지 않고 탐색이나 비교 작업을 수행하는 알고리즘입니다. find, find_if, find_end find: 특정 값과 일치하는 첫 번째 요소를 찾습니다. find_if: 조건(서술자)을 만족하는 첫 번째 요소를 찾습니다. find_end: 대상 범위 내에서 특정 서브 시퀀스가 마지막으로 나타나는 위치를 반환합니다. vector&l ...

5월 26일 23:29에 게시됨