Nagie's DevStory

[DATA STRUCTURE] 01. 자료 구조란? 본문

ComputerScience/DataStructure

[DATA STRUCTURE] 01. 자료 구조란?

Nagie 2023. 10. 24. 21:23
728x90

자료구조(Data Structure)는 데이터를 효과적으로 저장, 관리, 조직화하고 검색할 방법을 정의하는 중요한 개념이다.

자료구조는 다양한 알고리즘 및 프로그램 개발에 필수적이며, 데이터의 특성과 사용 목적에 따라 다양한 형태로 설계된다.

다음은 주요 자료구조에 대한 간단한 설명이다.

 

종류 설명

배열

(Array)


동일한 자료 유형의 요소가 순서대로 저장되는 선형 자료구조다.

각 요소는 인덱스를 통해 접근할 수 있으며, 빠른 읽기와 쓰기가 가능하다.

크기가 고정되어 있으므로 동적으로 조정하기가 힘들다는 단점이 있다.


연결 리스트

(Linked List)

노드들이 링크로 연결된 구조로 자료를 저장한다.

단일 연결 리스트, 이중 연결 리스트, 환형 연결 리스트 등 

다양한 종류가 있으며 크기 조정이 유연하고

중간 요소의 삽입 및 삭제가 편하다.


스택

(Stack)

후입선출(LIFO, Last-In-First-Out) 원칙을 따르는 자료구조다.

주로 함수 호출, 뒤로 가기 기능 등에서 사용된다.



(Queue)

선입선출(FIFO, First-In-First-Out) 원칙을 따르는 자료구조다.

대기열 관리, 태스크 스케줄링 등에 활용된다.

트리

(Tree)


계층 구조로 자료를 저장하는 자료구조다.

이진 트리, 이진 탐색 트리, AVL 트리, B-트리 등 다양한 종류가 있으며

데이터 검색, 정렬, 계층 구조 표현 등에서 사용된다.


그래프

(Graph)


노드와 엣지로 이어진 자료구조로, 다양한 연결 패턴을 표현한다.

최단 경로, 네트워크 토폴로지, 소셜 네트워크 등 다양한 분야에서 활용된다.


해시 테이블

(Hash Table)


키와 값 사이의 매핑을 제공하는 자료구조로, 빠른 검색 및 삽입을 지원한다.

충돌 처리를 위한 해시 함수가 필요하며, 해시 충돌을 효과적으로 관리해야 한다.

 

이 외에도 다양한 자료구조가 있지만 가장 보편적으로 사용되는 자료구조만 간추려서 정리했다.

자료구조는 알고리즘의 성능, 메모리 사용량 및 코드의 가독성에 영향을 미치므로 상황에 맞게 선택해야 한다.

 

728x90
Comments