자료구조사전적 의미로는 Data의 집합을 의미.효율적인 접근 및 수정을 위한 자료의 관리 및 저장을 의미.데이터를 관리하는 핵심적인 요소이다.데이터 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한 것.\-> 데이터를 효율적으로 관리 및 저장하여 메모리를 효육
✅ 정의 데이터를 나열하고 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조 메모리 상 같은 타입의 자료가 연속적으로 저장 ✅ 장점 같은 종류의 데이터를 호율적으로 관리하기 위해 사용 인덱스를 통해 빠른 접근 가능 첫 데이터에서 상대적인 위치로 데이터 접근 ✅
출처: http://www.stoimen.com/blog/2012/06/05/computer-algorithms-stack-and-queue-data-structure/ ✅ 구조 FIFO (First In First Out) 가장 먼저 넣은 데이터를 가장 먼저 꺼낼
✅ 구조 LIFO (Last In First Out) 가장 나중에 쌓은 데이터를 가장 먼저 뺄 수 있는 구조 데이터를 제한적으로 접근할 수 있는 구조 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 ✅ 장점 구조가 단순해서 구현이 쉽다 데이터 저장/읽기 속도가 빠르다
✅ 구조 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구조 데이터의 물리적 배치를 사용하지 않는 데이터 구조 Index나 위치보다 참조 시스템 사용 ✅ 용어 노드(Node) : 데이터 저장 단위. 데이터값+포인터로 구성 포인터(Pointer) :
키에 데이터를 매핑할 수 있는 데이터 구조해쉬 함수를 통해 배열에 키에 대한 데이터를 저장할 수 있는 주소를 계산Key를 통해 바로 데이터가 저장되어 있는 주소를 알 수 있으므로 저장 및 탐색 속도가 획기적으로 빨라짐초 간단 해쉬 함수 예시 : Division 기법 (
Node로 구성된 계층적 자료구조Node와 Branch를 이용해서 사이클을 이루지 않도록 구성한 데이터 구조이진트리 : 노드의 최대 Branch가 2인 트리이진탐색트리 : 왼쪽 노드는 해당 노드보다 작은 값, 오른쪽 노드는 해당 노트보다 큰 값을 가지고 있는 이진트리탐
✅ 구조 정점(Vertex) 또는 노드(Node)와 간선(Edge)로 표현하기 위해 사용 ✅ 용어 Node : 위치를 말함. 정점 (Vertex)라고도 함 Edge : 위치 간의 간의 관계를 표시한 선. 노드를 연결한 선. link 또는 branch라고도 함 인접 정