개인공부

자료구조 개념과 종류 본문

자료구조

자료구조 개념과 종류

풀스택개발 2018. 5. 22. 12:21

자료구조 정의


 데이터를 효율적으로 다루기 위해 데이터를 저장하는 방법


 


 


자료구조의 알고리즘 선택


 일반적으로 자료구조가 선택되면 어떤 알고리즘을 적용할지 상대적으로 명확해짐

 반대로 특정 연산에는 특정 알고리즘이 필요하고 큰 시너지 성능을 발휘할 때 자료구조를 역선택하게 됨


 


 


자료구조의 단위와 종류


자료구조의 기초 단위

행렬, 레코드, 유니온, 참조


 


자료구조의 분류


자료형에 따른 분류


- 단순 구조 : 정수, 실수, 문자, 문자열


- 선형 구조 : 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) : 정렬시 같은 값이 존재할 때 섞일 수 있게 정렬






'자료구조' 카테고리의 다른 글

자료구조 - 스택의 개념과 구조 유튜브 강의  (0) 2018.07.29
Comments