자료구조 기초 2

쓰이는 자료구조 - Tree, Heap (Hash와 Tree의 성능비교 포함)

1. Tree가 뭐에요? - Node(이파리)와 Branch(가지)를 이용해서 원형 사이클 관계를 이루지 않도록 계층적(나무와 닮음)으로 구성한 데이터 구조 - 대표적으로 이진 트리의 구조로 자료 탐색 알고리즘 구현을 위해 사용되어진다. - Node: 트리에서 데이터를 저장하는 구성 요소 - Branch: 트리와 트리를 연결하는 요소. 결국 하나의 Node에는 data와 다음 Node에 대한 link값을 가진다. - Root Node: 최상위 노드 - Terminal Node(Leaf Node): Child Node가 하나도 없는 노드 - Sibling: 동일한 Parent Node를 가진 노드 - Level: 트리의 층 수 - Depth: 트리에서 Node가 가질 수 있는 최대 Level - Sibli..

쓰이는 자료구조 - Hash Table

1. 왜, 해시 테이블인가? - 해시: 어떤 값을 고정된 길이로 변환하는 것 - 해싱 함수(Hashing Function): Key에 대해 산술 연산(고정된 길이로 변환)을 수행하여 데이터 위치를 찾을 수 있는 값을 출력하는 함수 - 해시 값(=해시 주소): Key를 해싱 함수로 연산하여 얻은 값. 이를 기반으로 해시 테이블에서 Key에 대한 데이터 위치를 찾을 수 있다. - 해시 테이블: K(=Key, 키)에 V(=Value, 데이터)를 저장하는 데이터 구조 -> 빠른 검색을 할 수 있다. 그 과정을 예로 들어볼까. 실제로는 복잡하겠지만, 이해를 위해 간단하게 예를 들어보겠다. - 해싱 함수: K % 8 - 해시 테이블 크기: 8 (8개의 데이터를 저장할 수 있는 공간) 전화번호부가 있다. 총 8명의 ..