본문 바로가기
반응형

Datastructure4

[Data-Structure] Graph (그래프) 오늘은 비선형 구조 중 하나인 그래프(Graph)에 대해서 공부했다. 그래프(Graph)는 노드(Node, 또는 정점 -vertex- 이라고도 부른다), 그리고 노드와 노드를 연결하는 간선(edge)으로 구성된다. 그래프는 무방향(undirected)일 수도 있으며, 이는 간선에 의해 연결된 2개의 노드가 대칭일 수 있다는 의미이다. 한편 방향성(directed)을 가질 수도 있는데, 이는 비대칭 관계를 의미한다. 진입 차수, 진출 차수란? 진입 차수 : 외부노드에서 해당 노드로 들어오는 간선의 수 진출 차수 : 해당 노드에서 외부로 향하는 간선의 수 그래프 구현 방식 중 인접 행렬 방식과 인접 리스트 방식의 차이 인접 행렬 방식 : 그래프의 연결 관계를 이차원 배열로 나타내어 graph[i, j] 일 .. 2020. 10. 26.
[Data-Structure] Tree (트리)와 Binary Search Tree (이진 탐색 트리) (2)Binary Search Tree (이진 탐색 트리) 란 지난번 글에 이어서 이번에는 Binary Search Tree (BST, 이진 탐색 트리) 에 대해서 알아보았다. 이진 탐색 트리는 최대 2개의 자식만 갖는 트리이다. 트리 구조는 재귀적이므로, 자식 노드 역시 최대 2개의 자식을 갖는다. 이진 탐색 트리에서는 노드의 값이 정렬 방법에 따라 순서가 존재하는데 노드의 왼쪽 서브 트리에는 노드의 값보다 작은 값이, 오른쪽 서브 트리에는 노드의 값보다 같거나 큰 값이 존재하게 된다. 이진 탐색 트리는 트리 자료구조를 활용한 자료구조로 데이터 탐색 속도를 높일 때 사용한다. 이진 탐색 트리가 주어졌을 때, 세가지 방법으로 순회가 가능하다. 전위 순회(Preorder Traversal): 부모 → 좌 → 우 중위 순회(Inorder Traversal): 좌 → 부.. 2020. 10. 26.
[Data-Structure] Tree (트리)와 Binary Search Tree (이진 탐색 트리) (1)Tree 구조란 오늘은 트리 구조(Tree)와 이진 탐색 트리(Binary Search Tree)에 대해서 공부해보았다. 트리 구조란 노드로 구성된 계층적 자료구조이다. 최상위 노드(루트)를 만들고, 루트 노드의 child를 추가하고, 그 child에 또 child를 추가하는 방식으로 트리 구조를 구현할 수 있다. 트리 구조와 관련하여 반드시 알아야 할 개념들이다. [정보통신기술용어해설] 참조 A, B, C, D 등 트리의 구성요소를 노드(node) 라고 한다. 위 그림의 A처럼, 트리 구조에서 최상위에 존재하는 노드를 root이다. 루트를 기준으로, 다른 노드로의 접근하기 위한 거리를 depth 라고 한다. 같은 부모를 가지면서 같은 depth에 존재하는 노드들은 sibling 관계에 있습니다. (같은 부모를 가진 노.. 2020. 10. 26.
[Data-Structure] HashTable (해시 테이블) 오늘은 해시 테이블(HashTable)에 대해서 공부했다. 해시 테이블(hash table), 해시 맵(hash map), 해시 표는 컴퓨팅에서 키를 값에 매핑할 수 있는 구조인, 연관 배열 추가에 사용되는 자료 구조이다. 해시 테이블은 해시 함수를 사용하여 색인(index)을 버킷(bucket)이나 슬롯(slot)의 배열로 계산한다. (위키 백과) 해시 테이블에 대해서 알아보기 위해 JS로 간단하게 구현해보았다. 해시 함수 hashFunction()을 따로 만들어주고 JS의 배열 대신 크기를 조절할 수 있는 배열 LimitedArray를 새로 만들어 주었다. HashTable이라는 클래스를 선언해준 다음에 메서드들을 정의했다. 정의된 메서드들은 다음과 같다. insert(key, value) : 주어진.. 2020. 10. 23.
반응형