자료구조 정의
데이터를 효율적으로 다루기 위해 데이터를 저장하는 방법
자료구조의 알고리즘 선택
일반적으로 자료구조가 선택되면 어떤 알고리즘을 적용할지 상대적으로 명확해짐
반대로 특정 연산에는 특정 알고리즘이 필요하고 큰 시너지 성능을 발휘할 때 자료구조를 역선택하게 됨
자료구조의 단위와 종류
자료구조의 기초 단위
행렬, 레코드, 유니온, 참조
자료구조의 분류
자료형에 따른 분류
- 단순 구조 : 정수, 실수, 문자, 문자열
- 선형 구조 : 1:1의 자료간 관계
- 비선형 구조 : 1:N 또는 N:M의 자료간 관계
- 파일 구조 : 순차 파일, 색인 파일, 직접 파일
구현에 따른 분류
- 배열(Array) : 가장 일반적이며 메모리 상 같은 타입의 자료가 연속적으로 저장 관리
- 튜플(Tuple) : 둘 이상의 자료형을 묶음으로 저장 관리
- 연결 리스트(Linked List) : 노드를 단위로 다음 노드를 가리키는 포인터로 구성
- 원형 연결 리스트(Circular Linked List) : 연결 리스트에서 마지막 노드가 처음 노드를 포인터
- 이중 연결 리스트(Double Linked List) : 각 노드는 이전, 다음 노드를 포인터
- 원형 이중 연결 리스트(Circular Double Linked List) : 이중 연결 리스트에서 처음 노드는 마지막 노드를 포인터, 마지막 노드는 처음 노드를 포인터
형태에 따른 분류
선형 자료구조
- 스택(Stack) : LIFO 구조 / PUSH, POP, TOP
- 큐(Queue) : FIFO 구조 / PUT, GET, FRONT, REAR
- 덱(Dequeue) : 큐에서 입구가 양쪽으로 존재
- 리스트(List) : 포인터가 서로 연결되어있음
비선형 자료구조
- 트리(Tree) : 뿌리 노드인 부모를 바탕으로 자식들을 가지는 부모-자식 관계를 가짐
- 그래프(Graph) : 정점과 정점을 잇는 간선으로 데이터를 가짐
- 이진 트리(Binary Tree) : 자식 노드가 최대 두개인 트리
- 힙(Heap) : 이진 트리에 어떤 특성을 부여해 데이터를 저장 관리
정렬 동작에 따른 분류
- 안전한 정렬(Stable Sorting) : 정렬시 같은 값이 존재할 때 같은 순서로만 정렬
- 안전하지 않은 정렬(Unstable Sorting) : 정렬시 같은 값이 존재할 때 섞일 수 있게 정렬
'Computer Engineering > Data Structure' 카테고리의 다른 글
[자료구조] 그래프(Graph) (0) | 2016.02.04 |
---|---|
[자료구조] 트리(Tree) (0) | 2016.02.04 |
[자료구조] 연결리스트(Linked List) (0) | 2016.02.04 |
[자료구조] 큐(Queue) (0) | 2016.02.04 |
[자료구조] 스택(Stack) (0) | 2016.02.03 |