자료구조에 대해 이해하고 각 자료구조가 갖는 특징과 예시에 대한 포스팅
의의
- 자료구조 : 데이터의 타입과 값에 대해 접근하며, 저장, 수정 및 관리하는 것을 말합니다.
- 자료구조를 사용하는 이유
- 체계적인 데이터 저장
- 효율적 데이터 관리
- 특정 문제 상황을 쉽게 해결하기 위한 접근용 (특히, 알고리즘과 밀접한 관려이 있습니다.)
종류
- 자료구조의 종류와 구분(이미지)
- 설명 (as JAVA)
- 단순구조 (primitive type)
- 2진수 :
0
과 1
로 이루어진 수 (ex) 10 = 1010)
- 정수 / 실수
- 정수 :
byte
(8bits), short
(16bits), int
(32bits), long
(64bits)
- 실수 :
float
(32bits), double
(64bits)
- 문자 / 문자열
- 문자 :
char
(16bits)
- 문자열 : 자바에서 문자열은
char
형 배열과 String을 사용한다.
- ⭐️ 선형 구조
- 리스트 / 배열
- 리스트 : List, ArrayList(single thread), Vector(multi thread)
- 배열 : 정수, 실수, 문자형의 배열 (int[], float[], char 등)
- 연결리스트 (LinkedList)
- 단순 : 노드가 다음 노드를 가르킵니다.
- 이중 : 각 노드가 이전 / 다음 노드를 가르킵니다.
- 다중 : 각 노드가 2개 이상의 노드를 가르킵니다.
- 원형 : 마지막 위치의 노드가 첫 번째 노드를 가르킵니다.
- 원형 이중 : 첫 번째 노드의 이전 노드는 마지막 노드입니다.
- 스택(Stack) : 선입후출
- 큐(Queue) : 선입선출
- 덱(Dequeue) : 양방향 큐로서, 구조의 첫 위치와 마지막 위치에 데이터를 삽입할수도 있고 빼낼 수도 있습니다.
- 비선형 구조
- 트리 : 부모 노드와 해당 노드에 연결된 자식 노드의 집합, 계층구조
- 이진 : 자식이 최대 두 개 (힙 → 이진 트리에 특성(최대, 최소)을 부여)
- 그래프 : 노드(vertex)와 간선(edge)의 집합 (표현 : G(V,E)
- 방향 : 간선에 방향이 존재 (ㅇ → ㅇ)
- 무방향 : 간선에 방향이 존재하지 않음 (ㅇ - ㅇ)
각 자료구조 별로 갖는 특징에 대해 포스팅하겠습니다!