javascript/data structure(3)
-
Hash Table
Hash는 배열을 사용하여 값을 저장하기 때문에 빠른 검색속도를 가지고 있다. 특정한 값을 search하는데 데이터 고유의 인덱스로 접근을 하는데 이 인덱스로 저장되는 key 값이 불규칙 하다. 그래서 저장할 데이터와 연관된 고유한 숫자를 만들어 낸 뒤 이를 인덱스로 사용한다. 특정 데이터가 저장되는 인덱스는 그 데이터만의 고유한 위치이기 때문에 다른 데이터의 사이에 끼어들거나, 삭제시 다른 데이터로 채울 필요가 없으므로 연산에서 추가적인 비용이 없도록 만들어진 구조이다. 해쉬 충돌 (Hash Collision) 방지 1. Separate Chaining 연결리스트를 이용하는 방식으로 키(Key)에 매핑된 인덱스가 가르키는 연결 리스트(Linked List)에 노드(Node)를 추가하여 값(Value)을..
2019.07.28 -
Tree
1. Tree 트리 구조는 비선형 구조로 데이터가 계층적으로 구성되어 있다. 트리는 노드들과 노드를 연결하는 edge(간선)들로 이루어진 자료 구조로 하나의 루트로드를 가지고 루트 노드는 0개 이상의 자식 노드를 가지고 그 자식 노드 또한 0개 이상의 자식 노드를 가지는 구조가 반복된다. Root Node : 트리 구조에서 최상위에 존재하는 노드 (A) Node : 트리의 구성요소에 해당하는 요소 (A, B, C, D, E, F, G, H, I) Edge : 노드와 노드를 연결하는 연결선 Terminal Node(Leaf Node) : 밑으로 다른 노드가 연결되어 있지 않은 노드 (H, I, F, G) Sub -Tree : 큰 트리에 속하는 작은 트리 Level : 트리에서 각 층별로 숫자를 매긴다. H..
2019.07.25 -
Stack, Queue, Linked List
1. stack 데이터를 한쪽 끝에서만 넣고 뺄 수 있는 LIFO(Last In First Out) 형식의 선형 자료형이다. 스택의 연산 pop() : 스택 가장 위의 항목 제거 push(item) : item 하나를 스택의 가장 윗부분에 추가한다. peek() : 스택의 가장 위에 있는 항목을 반환한다. 스택의 특징 배열과 달리 스택은 상수 시간에 i 번째에 접근할 수 없다. 데이터 추가 삭제 연산에서는 상수 시간에 접근이 가능하다. Pseudo Code Stack 함수를 생성 데이터를 담을 배열을 생성 배열 마지막에 값을 추가하는 함수를 만든다. (push) 배열 마지막에 값을 제거하는 함수를 만든다. (pop) 배열 마지막 값을 반환하는 함수를 만든다. (peek) 2. Queue 앞부분부터 삭제가..
2019.07.24