728x90
자료 구조란 자료를 효율적으로 저장하고 관리하는 것을 의미한다.
위의 옷들을 자료라고 생각하면 위의 옷들을 각각 분류해서 상의, 하의로 분류하는 것이 자료구조라고 볼 수 있다.
효율적인 자료구조를 사용함으로써 우리는 메모리의 절약, 프로그램 실행 시간 단축, 프로그램의 구현 용이 등...을 이룰 수 있다. 만약 우리가 코드를 짤 때 계획없이 의식의 흐름대로 코드를 짜면 아래와 같은 스파게티코드를 볼 수 있다...
- 메모리의 절약 : 프로그램이 목적에 맞게 필요한 정보한을 저장하여 저장 공간을 효율적으로 사용하는 것
- 프로그램 실행 시간 단축 : 효율적인 알고리즘을 구현하기 위해서는 먼저 효율적인 자료구조를 만들어야 함
- 프로그램의 구현 용이 : 프로그램의 목적에 맞게 설계된 자료 구조는 프로그램의 구현을 쉽게 해 준다.
자료구조의 분류는 크게 선형 구조와 비선형 구조로 나눌 수 있다.
선형 구조란 자료를 순차적으로 나열 시킨 형태로 배열(array), 리스트(list), 스택(stack), 큐(queue) 등이 있다.
- 스택(stack)
이처럼 스택은 하노이의 탑처럼 쌓아올리는 형태로 가장 마지막에 들어온 것이 가장 먼저나가는 형식을 취하고 있다.
- 큐(queue)
큐는 줄서는 것과 같이 볼 수 있는데, 먼저 들어온 것이 먼저 나가는 형식을 취한다.
배열(array) | 리스트(list) | |
형태 | ||
크기 유동성 | 고정 | 유동적 |
데이터 저장 방식 | 연속 저장 | 불연속 저장 |
데이터 접근 방식 | index | 순차적 |
데이터 편집 편리성 | 번거롭다 | 비교적 쉽다 |
비선형 구조란 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 형태로 트리(tree), 그래프(graph) 등..이 있다.
- 트리(tree)
부모 노드, 자식 노드로 이뤄져 있는 자료구조이다. 자세한 설명은 스킵한다
- 그래프(graph)
정점(vortex)과 간선(edge)으로 이루어진 자료구조로 간선 사이에는 상황에 따라서 방향성이 포함될 수도 포함되지 않을 수도 있다.
728x90
'자료구조' 카테고리의 다른 글
[자료구조] 소리 데이터의 표현 (0) | 2024.03.22 |
---|---|
[자료구조] 이미지 데이터의 표현 (2) | 2024.03.19 |
[자료구조] 부동 소수점 데이터 표현 방식 (2) | 2024.03.19 |
[자료구조] 팩 & 언팩 (0) | 2024.03.15 |
[자료구조] 수치 데이터의 표현 (0) | 2024.03.12 |
댓글