728x90
반응형

자료구조 9

큐(Queue)

개요큐(Queue)는 먼저 들어간 데이터가 먼저 나오는 선입선출(First-In, First-Out, FIFO) 구조를 가지는 선형 자료구조이다. 데이터는 **뒤(Rear)**에서 삽입되고, **앞(Front)**에서 삭제되며, 일상적인 줄서기, 프로세스 스케줄링, 버퍼 처리 등에 널리 사용된다. 파이썬에서는 collections.deque, 리스트, 큐 모듈 등을 통해 구현할 수 있다.1. 개념 및 정의 항목 설명 구조선형적, 한쪽에서는 삽입, 반대쪽에서는 삭제 수행주요 연산enqueue(삽입), dequeue(삭제), peek(앞 요소 확인), isEmpty원리FIFO (First-In, First-Out)2. 큐 연산 동작 예시초기: []enqueue(10) → [10]enqueue(20) → [..

Topic 2025.03.29

스택(Stack)

개요스택(Stack)은 데이터가 일렬로 쌓이고, 가장 마지막에 삽입된 요소가 가장 먼저 제거되는 후입선출(Last-In, First-Out, LIFO) 원칙을 따르는 선형 자료구조이다. 삽입은 push, 삭제는 pop, 현재 요소 확인은 peek 또는 top 연산으로 수행되며, 재귀, 수식 계산, 괄호 검사, 웹 브라우저의 방문 기록 등 다양한 분야에서 널리 활용된다.1. 개념 및 정의 항목 설명 구조선형적, 한쪽 끝에서만 삽입 및 삭제 가능주요 연산push(삽입), pop(삭제), peek/top(최상단 확인), isEmpty대표 원리LIFO (Last-In, First-Out)2. 스택 연산 동작 예시초기: []push(10) → [10]push(20) → [10, 20]pop() → [10] (2..

Topic 2025.03.29

Linked List(연결 리스트)

개요연결 리스트(Linked List)는 각 노드가 데이터와 다음 노드를 가리키는 포인터를 함께 저장하여 데이터를 선형으로 연결한 자료구조이다. 배열과 달리 메모리 상에서 연속적이지 않아도 되며, 삽입/삭제 연산이 유연하다는 장점이 있다. 리스트의 형태에 따라 단일(Singly), 이중(Doubly), 원형(Circular) 등으로 구분되며, 알고리즘과 시스템 구현에서 핵심적으로 활용된다.1. 개념 및 정의 구성 요소 설명 Node데이터(data) + 포인터(next)로 구성된 기본 단위Head연결 리스트의 시작 노드를 가리키는 포인터Tail마지막 노드를 의미하며, next는 None 또는 Head를 가리킴노드는 동적으로 생성되며, 메모리를 필요할 때마다 할당한다.2. 배열과의 차이점 비교항목배열(Ar..

Topic 2025.03.29

순회 알고리즘(Traversal Algorithms)

개요순회 알고리즘(Traversal Algorithms)은 트리(Tree), 그래프(Graph)와 같은 비선형 자료구조 내의 모든 노드(또는 정점)를 체계적으로 방문하는 방법이다. 순회는 구조의 전체 상태를 파악하거나 특정 노드 검색, 경로 탐색, 연산 수행에 필수적이다. 이 글에서는 트리 순회와 그래프 순회를 중심으로 다양한 순회 알고리즘의 개념, 구현 방식, 시간 복잡도 및 활용 사례를 정리한다.1. 개념 및 정의순회(Traversal)는 자료구조에 저장된 데이터를 하나씩 방문하며 특정 작업(출력, 계산 등)을 수행하는 과정이다. 선형 구조는 단순 순차 탐색으로 충분하지만, 트리나 그래프는 분기 구조를 갖기 때문에 다양한 방식의 순회가 존재한다.2. 트리 순회(Tree Traversal) 순회 방식 ..

Topic 2025.03.28

정렬 알고리즘(Sorting Algorithms)

개요정렬 알고리즘은 데이터 집합을 일정한 기준(숫자 크기, 알파벳 순 등)에 따라 순서대로 정렬하는 알고리즘이다. 효율적인 정렬은 데이터 검색, 최적화, 통계 처리 등에서 성능 향상에 큰 영향을 미친다. 정렬 방식에 따라 내부 정렬, 외부 정렬, 안정 정렬, 불안정 정렬로 나뉘며, 시간/공간 복잡도에 따라 선택이 달라진다. 본 글에서는 대표적인 정렬 알고리즘들의 개념, 성능, 특징 및 활용 사례를 중심으로 정리한다.1. 정렬 알고리즘의 분류 분류 기준 유형 설명 구현 방식비교 기반 정렬요소 간 비교를 통해 순서 결정 (버블, 삽입, 병합 등)비비교 기반 정렬키 값을 직접 계산해 정렬 (계수, 기수 정렬)메모리 사용내부 정렬주 메모리 내에서 정렬 수행 (일반적인 정렬)외부 정렬디스크 등 외부 저장소에서..

Topic 2025.03.28

탐색 알고리즘(Search Algorithms)

개요탐색 알고리즘은 데이터 집합 내에서 특정 값을 찾기 위해 사용되는 알고리즘이다. 효율적인 탐색은 데이터 처리 성능에 직결되며, 자료구조와 문제 특성에 따라 다양한 탐색 방식이 활용된다. 선형 탐색처럼 단순한 방식부터 이진 탐색, 해시 탐색, 그래프 기반 탐색(DFS, BFS), 트리 탐색까지 광범위하게 존재한다. 본 글에서는 탐색 알고리즘의 개념, 종류, 시간 복잡도, 활용 사례를 중심으로 체계적으로 설명한다.1. 개념 및 정의탐색 알고리즘은 주어진 데이터 구조에서 특정 키나 값을 찾는 절차이다. 자료의 정렬 여부, 크기, 구조에 따라 탐색 방식의 효율이 달라지며, 경우에 따라 최적화된 알고리즘 선택이 중요하다.2. 탐색 알고리즘의 분류 분류 설명 적용 자료구조 선형 탐색데이터를 처음부터 끝까지 ..

Topic 2025.03.28

선형 자료구조(Linear Data Structures)

개요선형 자료구조는 데이터를 순차적으로 저장하고 처리하는 구조로, 가장 기본적이고 널리 사용되는 데이터 조직 방식이다. 데이터의 삽입, 삭제, 탐색 등을 효율적으로 수행할 수 있도록 다양한 형태의 선형 구조가 존재하며, 메모리 구조와 응용 목적에 따라 적절한 자료구조를 선택하는 것이 중요하다. 본 글에서는 배열(Array), 연결 리스트(Linked List), 스택(Stack), 큐(Queue)의 개념, 구조, 특징, 활용 사례를 체계적으로 정리한다.1. 개념 및 정의 자료구조 정의 특징 배열동일한 타입의 데이터를 연속된 메모리 공간에 저장고정 크기, 인덱스 접근 빠름연결 리스트포인터를 통해 노드들이 연결된 구조동적 크기, 삽입/삭제 효율적스택한쪽 끝에서 삽입/삭제가 이뤄지는 LIFO 구조후입선출(..

Topic 2025.03.28

자료구조(Data Structure)

개요자료구조(Data Structure)는 데이터를 효과적으로 저장하고 처리하기 위한 조직화된 방식이다. 알고리즘의 성능을 좌우하는 중요한 요소로, 효율적인 메모리 사용과 빠른 연산을 가능하게 해준다. 자료구조는 소프트웨어 개발, 시스템 설계, 데이터베이스, 인공지능, 보안 등 다양한 분야의 핵심 기반 기술로 활용된다. 본 글에서는 자료구조의 기본 개념, 분류, 주요 자료구조, 활용 사례를 체계적으로 정리한다.1. 개념 및 정의자료구조란 데이터를 저장하고, 검색하고, 삽입하고, 삭제하는 등의 연산을 효율적으로 수행할 수 있도록 데이터를 구조화하는 방식이다. 목적에 따라 선형, 비선형, 동적 구조 등으로 분류되며, 각 구조는 특정 문제 해결에 최적화되어 있다.2. 분류 분류 설명 예시 선형 구조데이터가..

Topic 2025.03.28

스택(Stack)과 큐(Queue)

개요스택(Stack)과 큐(Queue)는 **자료구조(Data Structure)**에서 가장 기본적인 개념으로, 데이터를 저장하고 관리하는 방식이 다릅니다. 스택은 LIFO(Last In, First Out) 구조를 가지며, 큐는 FIFO(First In, First Out) 방식을 따릅니다. 이러한 구조적인 차이로 인해 각각의 데이터 구조는 다양한 프로그래밍 및 알고리즘 문제에서 중요한 역할을 합니다. 본 글에서는 스택과 큐의 개념, 차이점, 주요 연산 및 활용 사례를 살펴봅니다. 1. 스택(Stack)이란?스택(Stack)은 후입선출(LIFO, Last In First Out) 방식으로 데이터를 저장하고 처리하는 자료구조입니다. 즉, 마지막에 들어온 데이터가 가장 먼저 제거되는 구조입니다.1.1..

Topic 2025.03.14
728x90
반응형