[C++ Data Structure] 자료구조란
자료구조
자료구조(Data Structure)는 데이터를 효율적으로 저장하고 관리하기 위한 구조와 알고리즘의 집합입니다.
데이터의 삽입, 수정, 삭제, 검색, 정렬, 병합 및 순회 같은 기본 연산을 최적화 하는데 핵심적인 역할을 합니다.
효율적인 자료구조 선택은 프로그램 성능에 직접적으로 영향을 미칩니다.
C++에서는 표준 템플릿 라이브러리(STL)와 사용자 정의 클래스를 통해 다양한 자료구조를 쉽게 사용할 수 있으며, 사용자 정의 클래스를 통해 고유한 자료구조를 구현할 수 있습니다.
자료구조의 선택 기준은 다음과 같습니다.
데이터의 처리시간
데이터의 크기
데이터의 활용 빈도
데이터의 갱신 정도
프로그램의 용이성
자료 구조의 분류
자료구조의 분류는 일반적으로 선형과 비선형으로 나뉘지만 다른 방법으로도 분류됩니다.
데이터 저장 방식으로 정적이나 동적 자료구조로 분류됩니다.
접근 방식으로 순차적 접근인지 임의 접근인지에 따라 분류됩니다.
데이터 관계에 따라 계층적 구조인지 망형 구조인지에 따라 분류됩니다.
기본 자료구조
기본 자료구조(Primitive Data Structure)은 기본적으로 제공하는 데이터 타입으로 구성됩니다.
복잡한 자료구조의 구성 요소로 사용됩니다.
정수, 실수, 문자, 불리언 등이 있습니다.
비기본 자료구조
기본 자료형을 기반으로 더 복잡한 데이터 구조를 구성하며, 다시 두 가지로 분류됩니다.
선형 자료 구조, 비선형 자료 구조로 분류됩니다.
선형 자료 구조
선형 자료구조(Linear Data Structure)은 데이터를 일렬로 나열한 자료 구조입니다.
데이터가 순차적으로 배치되고, 접근 방식도 순차적으로 이루어집니다.
데이터 간의 관계가 1:1입니다.
배열, 연결 리스트, 스택, 큐, 덱 등이 있습니다.
비선형 자료 구조
비선형 자료 구조(Non-Linear Data Structure)는 데이터를 순서에 상관없이 계층 구조나 그래프 구조로 연결하는 자료 구조입니다.
데이터가 계층적 또는 망형 구조로 배치되고, 순서에 의존하지 않으며 복잡한 연결 관계를 가집니다. 데이터 간의 관계가 1:1, 1:N, N:N입니다.
트리, 그래프 등이 있습니다.
댓글남기기