CS 4

트리(Tree)와 그래프(Graph)의 차이점 비교

트리(Tree)와 그래프(Graph)는 모두 정점(Vertex)과 간선(Edge)으로 구성된 자료구조이지만, 구조적 규칙과 사용 목적에 큰 차이점이 있습니다. 크게 5가지로 구분해서 살펴보겠습니다. 1. 구조적 제약의 존재 여부트리: 제약이 많은 구조반드시 하나의 루트(root)가 존재함사이클이 존재할 수 없음부모는 하나만 가질 수 있음연결 구조가 계층적(hierarchical)그래프: 제약이 거의 없는 구조루트가 존재할 필요 없음사이클이 있을 수도 있고 없을 수도 있음한 정점에 여러 부모 또는 여러 간선 연결 가능구조가 네트워크 형태로 자유로움 2. 연결 방향트리보통 방향성이 있는 구조(부모 → 자식)로 취급됨그래프방향 그래프(Directed) 또는 무방향 그래프(Undirected) 모두 가능함 3..

CS 2025.12.07

그래프(Graph) 자료구조 개념 정리 + Python 구현

그래프(Graph)는 현실 세계의 다양한 관계를 표현할 수 있는 강력한 자료구조입니다.SNS 친구 관계, 도로 지도, 네트워크 연결 구조 등 우리 주변의 수많은 시스템이 그래프로 모델링될 수 있습니다.오늘은 그래프의 개념과 핵심 용어, 그리고 간단한 예제를 중심으로 그래프에 대해서 설명하겠습니다. 그래프(Graph)란 무엇인가?그래프는 노드(Node, 정점 Vertex)와 간선(Edge)으로 구성된 자료구조입니다.트리가 계층 구조를 표현하는 것이라면, 그래프는 복잡한 연결 관계를 표현하기 위한 구조입니다. 그래프는 다음과 같은 특징을 가집니다.노드와 노드가 간선으로 연결되어 있음순환(Cycle)이 존재할 수 있음데이터 간의 관계를 표현하는 데 매우 적합함방향성이 있을 수도 있고 없을 수도 있음 그래프의..

CS 2025.12.07

트리(Tree) 자료구조 개념 정리 + Python 구현

자료구조를 공부할 때 반드시 등장하는 구조가 바로 트리(Tree)입니다. 트리는 계층 구조를 표현하기 위해 사용되며, 그래프의 한 형태이기도 합니다. 파일 시스템, 데이터베이스 인덱스, 조직도 등 여러 곳에서 활용되는 매우 중요한 개념입니다. 오늘은 트리의 핵심 개념과 기본 용어, 그리고 대표적인 예제를 중심으로 설명해보겠습니다. 트리(Tree)란 무엇인가?트리는 노드(Node)와 간선(Edge)으로 이루어진 비선형 자료구조입니다.일반적인 배열이나 연결 리스트처럼 순차적으로 이어지는 구조가 아니라, 계층적이며 부모-자식 관계를 가진 구조입니다. 트리는 다음과 같은 특징을 가집니다.하나의 최상위 노드를 루트(root)라고 부릅니다.각 노드는 0개 이상의 자식 노드를 가질 수 있습니다.사이클이 존재하지 않..

CS 2025.12.07

퀵 정렬(Quick Sort) 개념 및 동작 과정 + Python 예제 코드

정렬 알고리즘 중 가장 자주 언급되는 방식이 바로 퀵 정렬(Quick Sort)입니다. 평균적으로 매우 빠른 성능을 보이며, 분할 정복(Divide and Conquer) 전략을 기반으로 동작하는 대표적인 알고리즘입니다. 퀵 정렬(Quick Sort)이란?퀵 정렬은 피벗(Pivot) 이라고 불리는 기준 값을 중심으로 데이터를 두 그룹으로 나누고, 그 그룹에 대해 재귀적으로 정렬을 수행하는 알고리즘입니다. 퀵 정렬은 다음과 같은 특징을 가지고 있습니다.평균 시간 복잡도: O(n log n)최악 시간 복잡도: O(n²) (피벗을 잘못 선택할 경우)제자리(in-place) 정렬로 추가적인 메모리가 많이 필요하지 않음실제 개발 환경에서 매우 많이 사용되는 효율적인 정렬 기법 동작 방식퀵 정렬의 핵심 개념은 다음..

CS 2025.12.07