배열, 스택, 큐 같은 자료구조가 데이터를 일렬로 세운 선형 구조였다면 오늘 다룰 트리(Tree)는 조금 다르다. 데이터를 계층적으로 쌓아 올리는 비선형 구조라 처음 접하면 다소 낯설게 느껴질 수 있지만 사실 트리는 우리가 매일 사용하는 파일 시스템, 웹 페이지의 HTML DOM, 데이터베이스 인덱스 등에 이미 깊숙이 자리 잡고 있다. 트리(Tree)란? 트리는 *노드(Node)들이 부모-자식 관계로 연결된 자료구조를 의미한다. 하나의 최상위 노드에서 시작해 아래로 가지가 뻗어나가는 형태를 가진다. 이런 구조 덕분에 트리는 단순히
해시 테이블이란? 해시 테이블(Hash Table)은 키를 해시 함수를 통해 정수 인덱스로 변환한 뒤 해당 인덱스를 기반으로 값을 저장하는 자료구조이다. 이 과정을 통해 일반적인 배열처럼 빠른 접근 속도를 얻을 수 있다. Map: 키-값 쌍(key → value) 저장 Set: 값의 존재 ㅇ여부만 저장 (중복 허용 X) 두 자료구조 모두 내부적으로 해시 테이블을 기반으로 구현되는 경우가 많으며 탐색/삽입/삭제 모두 평균적으로 O(1)의 성능을 기대할 수 있다. 해시 테이블의 핵심은 아래 세 가지 요소이다. 1) 해시 함수 (Ha
스택(Stack)과 큐(Queue)는 가장 기본적인 자료구조로 둘 다 데이터를 넣고 꺼내는 방식에 관한 자료구조이지만 데이터가 들어간 순서에 따라 꺼내는 방식이 다르다. 각각의 기본 개념과 차이점에 대해 알아보자. 스택(Stack)이란? 스택은 “쌓는다”는 개념에 가장 잘 어울리는 자료구조이다. 가장 나중에 넣은 데이터가 가장 먼저 나오는 구조로써 후입선출(LIFO, Last-In-First-Out) 방식으로 동작한다. 주요 기능push(item) - 스택에 데이터를 추가한다.pop() - 스택에서 가장 위에 있는 데이터를 제거
가장 기본적이면서도 자주 등장하는 선형 자료구조 3가지 배열, 리스트, 링크드 리스트에 대해 알아보자. 1. 배열 (Array) 배열이란 같은 타입의 데이터를 연속된 메모리 공간에 저장하는 자료구조이다. 각 요소는 인덱스를 통해 접근할 수 있으며 인덱스는 0부터 시작한다. 특징 고정된 크기배열은 생성 시 크기를 지정해야 하며 한 번 정해진 크기는 변경할 수 없다.인덱스를 통한 빠른 접근배열은 인덱스를 사용하여 특정 위치의 값을 O(1) 시간에 바로 접근할 수 있다.연속된 메모리 공간을 사용배열은 메모리상에 데이터가 연속적으로 배치되