리얼 개발

[자료구조] 0. 자료구조 본문

Computer Science/자료구조

[자료구조] 0. 자료구조

econo-my 2024. 7. 2. 12:59

어떤 자료든 깔끔하게 정리되어 있으면 보기도 좋고 찾을 때도 편하다. 물건을 찾을 때 우리가 찾으면 안나오지만 어머니가 찾으면 나오지 않나! 어머니는 물건의 위치, 종류를 머릿속으로 항상 정리해놓으시는 것이다. 이렇게 물건과 같은 자료를 자신의 상황에 맞게 정리할 수 있도록 하는 것을 자료구조라고 하며, 컴퓨터 관련 분야에서 기본적이고도 필수적인 개념이다. 프로그래머는 문제를 더 효율적이고 효과적으로 해결하기 위해 자료구조에 대한 개념을 이해하고 활용하는 능력이 필요하다.

 

자료구조의 분류는 다음과 같이 정리할 수 있다.

  • 단순 구조
    • 자료값을 사용하기 위한 기본 형태로서 프로그래밍 언어에서 제공하는 정수, 실수, 문자, 문자열 등의 데이터 타입에 해당한다.
  • 선형 구조
    • 자료 사이의 관계가 1:1 관계인 순차 리스트, 연결 리스트, 스택, 큐, 데크 등이 있다. 리스트는 포인터를 사용하여 데이터와 데이터를 연결한다.
  • 비선형 구조
    • 비선형 구조는 계층 구조나 망 구조를 갖는 자료구조로 트리와 그래프가 있다.
  • 파일 구조
    • 서로 관련 있는 필드로 구성된 레코드 집합인 파일에 대한 자료구조로 보조 기억 장치에 데이터가 실제로 기록되는 형태이다. 파일의 구성 방식에 따라 순차 파일, 색인 파일, 직접 파일 등이 있다.

해당 자료구조를 C++로 직접 구현해보며 쓰임새와 성능에 대해 공부해보겠다.