728x90

알고리즘&자료구조 62

[자료구조] 트리(Tree)

트리(Tree) 트리는 계층적 관계(Hierarchical Relationship)를 표현하는 비선형 자료구조이다. 트리를 만드는 도구를 만들어 놓으면 다양한 목적으로 활용이 가능하다. 트리의 관련 용어 노드(node) - 트리의 구성요소(A, B, C, D, E) 간선(edge) - 노드와 노드를 연결하는 선 루트 노드(root node) - 트리 구조에서 최상위 노드(A) 단말 노드(terminal node) - 아래로 노드가 연결 되어 있지 않은 노드(C, D, E) 내부 노드(internal node) - 단말 노드를 제외한 모든 노드(A, B) 부모 노드(parent node) 계층적 구조에서 위에 연결되어 있는 노드(A는 B,C의 부모 노드) 자식 노드(child node) 계층적 구조에서 아..

[자료구조] 해시 테이블(Hash Table)

테이블(Table) 맵(Map) 혹은 사전 구조(Dictionary)라고도 불리운다. 테이블은 데이터가 key와 Value가 쌍을 이루는 자료구조이다. key : 중복되지 않는 값 value : 실질적인 데이터 key를 기반으로 value를 탐색해야 하기 때문에 value를 근거로 key를 만드는 공식이 필요하다. 그렇지만 key와 value가 완전히 구분되지 않고 value의 일부를 key로 활용하는 경우도 있다. Ex) 학번이라는 value를 key로 활용 (학번은 중복되지 않기 때문) O(1)라는 빠른 속도를 가지지만 많은 공간이 낭비되는 문제가 발생한다. struct StudentInfo { int id; string name; }; StudentInfo arr[30000000]; arr[2020..