자료구조(Data Structure)란?
1. 자료구조는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미
- 검색, 순회, 저장, 삭제, 변경
2. 자료를 담는 추상적인 틀
3. 데이터의 형태와 쓰임에 가장 적합한 자료구조를 쓰는 것은 매우 중요
자료 구조 분류
구현에 따라
- 배열 : 가장 일반적인 구조, 메모리 상에 같은 타입 자료가 연속적으로 저장
- 튜플 : 둘 이상의 자료형을 묶음으로 다루는 구조
- 연결 리스트 : 노드를 단위로 한다. 노드는 자료와 다음 노드를 가리키는 참조값으로 구성
- 원형 연결 리스트 : 각 노드는 다음 노드를 가리키고, 마지막 노드가 처음 노드를 가리킴
- 이중 연결 리스트 : 각 노드는 이전 노드와 다음 노드를 가리키는 참조값으로 구성된다. 처음 노드의 이전 노드와 마지막 노드의 다음 노드는 없음
- 해시 테이블 : 개체가 해시값에 따라 인덱싱 됨
형태에 따라
- 선형 구조
단순 구조와 자료 간 관계가 1 대 1
- 스택 : 가장 나중에 들어온 자료가 가장 먼저 처리되는 LIFO(Last-In-First-Out) 자료구조 (후입선출)
- 큐 : 먼저 들어온 자료가 먼저 처리되는 FIFO(First In First Out) 기반 (선입선출)
비선형 구조
단순 구조와 자료 간 관계가 1 대 다 또는 다 대 다
- 그래프 : 꼭짓점과 꼭짓점을 잇는 변으로 구성
- 트리 : 뿌리와 뿌리 또는 다른 꼭지점을 단 하나의 부모로 갖는 꼭짓점들로 이루어진 구조
- 이진트리(tree)
- 자식이 최대 2개인 트리
- 힙(heap)
- 이진트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조
- 이진트리(tree)
시각화 자료는 'Visu Algo' 참고
[참고] 위키백과 '자료구조'
'자료구조 & 알고리즘 > 이론' 카테고리의 다른 글
[자료구조] 큐(queue) 파이썬으로 구현하기 (0) | 2022.04.08 |
---|---|
[자료구조] 스택(stack) 파이썬으로 구현하기 (0) | 2022.04.08 |
[자료구조] 빅오(Big-O)표기법 (0) | 2022.04.07 |
[자료구조 & 알고리즘] 시각화 사이트 (0) | 2022.04.07 |
<공부> [이것이 코딩 테스트다 with 파이썬] 4장 구현 예제 (0) | 2021.11.24 |
댓글