Data Structures/Python(5)
-
트리(Tree)
트리(Tree)1. 개념트리는 노드(node)들이 계층적으로 연결된 비선형 자료구조입니다. 각 노드는 여러 개의 자식 노드를 가질 수 있으며, 최상위 노드를 루트(root)라고 합니다. 트리는 계층적 관계를 표현하고 빠른 검색, 삽입, 삭제 연산을 지원합니다.2. 트리의 기본 구성 요소노드(Node): 트리의 기본 요소로, 데이터와 자식 노드에 대한 참조를 포함합니다.루트(Root): 트리의 최상위 노드입니다.부모(Parent): 직접적으로 연결된 상위 노드입니다.자식(Child): 직접적으로 연결된 하위 노드입니다.형제(Sibling): 같은 부모를 가진 노드들입니다.리프(Leaf): 자식이 없는 노드입니다.내부 노드(Internal Node): 자식이 있는 노드입니다.경로(Path): 한 노드에서 다..
2025.03.27 -
해시 테이블(Hash Table)
해시 테이블(Hash Table)1. 개념해시 테이블은 키(key)를 값(value)에 매핑할 수 있는 구조인 연관 배열(associative array) 추상 자료형을 구현하는 자료구조입니다. 해시 테이블은 해시 함수를 사용하여 키를 배열의 인덱스로 변환하고, 이 인덱스를 사용하여 값을 저장하거나 검색합니다.2. 핵심 구성 요소2.1. 해시 함수(Hash Function)정의: 임의의 크기를 가진 데이터를 고정된 크기의 값(해시 값)으로 변환하는 함수특징:같은 입력에 대해 항상 같은 출력을 생성해야 함서로 다른 입력에 대해 다른 출력을 생성하는 것이 이상적임계산이 빠르고 효율적이어야 함예시 해시 함수:def simple_hash(key, table_size): return sum(ord(c) fo..
2025.03.26 -
큐(Queue)
큐(Queue)개념 소개큐는 선입선출(FIFO: First-In-First-Out) 원칙을 따르는 자료구조입니다. 이는 실생활에서 줄을 서는 것과 같습니다. 가장 먼저 줄에 선 사람이 가장 먼저 서비스를 받게 됩니다. 큐에 새로운 요소는 항상 뒤쪽(rear)에 추가되고, 요소를 제거할 때는 항상 앞쪽(front)에서 이루어집니다.큐의 주요 연산:enqueue: 큐의 뒤쪽(rear)에 항목을 추가dequeue: 큐의 앞쪽(front)에서 항목을 제거하고 반환peek/front: 큐의 앞쪽 항목을 제거하지 않고 확인isEmpty: 큐가 비어있는지 확인size: 큐의 크기 확인시간 복잡도연산 시간 복잡도EnqueueO(1)DequeueO(1)*Peek/FrontO(1)isEmptyO(1)*일반적인 큐 구현에서..
2025.03.26 -
스택(Stack)
스택(Stack)개념 소개스택은 프로그래밍에서 가장 기본적인 자료구조 중 하나로, 후입선출(LIFO: Last-In-First-Out) 원칙에 따라 작동합니다. 이것은 마치 접시를 쌓아놓은 것과 같습니다. 가장 마지막에 쌓은 접시가 가장 먼저 사용됩니다.스택의 주요 연산:push: 스택의 맨 위에 항목을 추가pop: 스택의 맨 위에 있는 항목을 제거하고 반환peek/top: 스택의 맨 위 항목을 제거하지 않고 확인isEmpty: 스택이 비어있는지 확인시간 복잡도연산 시간 복잡도PushO(1)PopO(1)Peek/TopO(1)isEmptyO(1)스택의 모든 기본 연산은 상수 시간(O(1))에 수행됩니다. 이는 스택이 특정 유형의 문제에 매우 효율적인 솔루션을 제공할 수 있음을 의미합니다.파이썬에서의 구현파..
2025.03.26 -
배열(Array)과 리스트(List)
배열(Array)과 리스트(List)개념 소개배열과 리스트는 프로그래밍에서 가장 기본적인 자료구조로, 여러 데이터를 순차적으로 저장하는 컨테이너입니다. 파이썬에서는 리스트가 기본 자료구조로 제공되며, 이는 다른 언어의 동적 배열과 유사한 특성을 가집니다.1. 배열(Array)배열은 메모리에서 연속적인 공간에 동일한 타입의 데이터를 순차적으로 저장하는 자료구조입니다. 배열의 크기는 보통 선언 시점에 고정되며, 인덱스를 통해 빠르게 요소에 접근할 수 있습니다.2. 파이썬의 리스트(List)파이썬의 리스트는 다른 언어의 배열보다 더 유연한 특성을 가집니다:다양한 타입의 요소를 함께 저장할 수 있습니다.크기가 동적으로 변할 수 있습니다(동적 배열로 구현됨).다양한 내장 메서드를 제공합니다.3. 시간 복잡도연산 ..
2025.03.26