본문 바로가기
자료구조

[자료 구조] 자료구조에 대하여

by 김아잉 2024. 3. 12.
728x90

자료 구조란 자료를 효율적으로 저장하고 관리하는 것을 의미한다.

위의 옷들을 자료라고 생각하면 위의 옷들을 각각 분류해서 상의, 하의로 분류하는 것이 자료구조라고 볼 수 있다.

 

효율적인 자료구조를 사용함으로써 우리는 메모리의 절약, 프로그램 실행 시간 단축, 프로그램의 구현 용이 등...을 이룰 수 있다. 만약 우리가 코드를 짤 때 계획없이 의식의 흐름대로 코드를 짜면 아래와 같은 스파게티코드를 볼 수 있다...

  • 메모리의 절약 : 프로그램이 목적에 맞게 필요한 정보한을 저장하여 저장 공간을 효율적으로 사용하는 것
  • 프로그램 실행 시간 단축 : 효율적인 알고리즘을 구현하기 위해서는 먼저 효율적인 자료구조를 만들어야 함
  • 프로그램의 구현 용이 : 프로그램의 목적에 맞게 설계된 자료 구조는 프로그램의 구현을 쉽게 해 준다.

 


 

 

자료구조의 분류는 크게 선형 구조비선형 구조로 나눌 수 있다.

 

선형 구조란 자료를 순차적으로 나열 시킨 형태로 배열(array), 리스트(list), 스택(stack), 큐(queue) 등이 있다.

  • 스택(stack)

 이처럼 스택은 하노이의 탑처럼 쌓아올리는 형태로 가장 마지막에 들어온 것이 가장 먼저나가는 형식을 취하고 있다.

  • 큐(queue)

큐는 줄서는 것과 같이 볼 수 있는데, 먼저 들어온 것이 먼저 나가는 형식을 취한다.

  배열(array) 리스트(list)
형태
크기 유동성 고정 유동적
데이터 저장 방식 연속 저장 불연속 저장
데이터 접근 방식 index 순차적
데이터 편집 편리성 번거롭다 비교적 쉽다

 

 

비선형 구조란 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 형태로 트리(tree), 그래프(graph) 등..이 있다.

  • 트리(tree)

부모 노드, 자식 노드로 이뤄져 있는 자료구조이다. 자세한 설명은 스킵한다

  • 그래프(graph)

정점(vortex)과 간선(edge)으로 이루어진 자료구조로 간선 사이에는 상황에 따라서 방향성이 포함될 수도 포함되지 않을 수도 있다.

728x90

댓글