반응형

Archive/Data Structure 6

[자료구조] Graph (그래프) 란?

[자료구조] Graph (그래프) 란? Graph정점과 간선의 집합, Graphcf) 트리 또한 그래프이며, 그 중 사이클이 허용되지 않는 그래프를 말한다.그래프 관련 용어 정리Undirected Graph 와 Directed Graph(Digraph)말 그대로 정점과 간선의 연결관계에 있어서 방향성이 없는 그래프를 Undirected Graph 라 하고, 간선에 방향성이 포함되어 있는 그래프를 Directed Graph 라고 한다.Directed Graph(Digraph)V = {1, 2, 3, 4, 5, 6} E = {(1, 4), (2,1), (3, 4), (3, 4), (5, 6)} (u, v) = vertex u에서 vertex v로 가는 edge Undirected GraphV = {1, 2,..

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

[자료구조] Hash Table (해시 테이블) 이란? HashTablehash는 내부적으로 배열을 사용하여 데이터를 저장하기 때문에 빠른 검색 속도를 갖는다. 특정한 값을 Search 하는데 데이터 고유의 인덱스로 접근하게 되므로 average case 에 대하여 Time Complexity 가 O(1)이 되는 것이다.(항상 O(1)이 아니고 average case 에 대해서 O(1)인 것은 collision 때문이다.) 하지만 문제는 이 인덱스로 저장되는 key값이 불규칙하다는 것이다.그래서 특별한 알고리즘을 이용하여 저장할 데이터와 연관된 고유한 숫자를 만들어 낸 뒤 이를 인덱스로 사용한다. 특정 데이터가 저장되는 인덱스는 그 데이터만의 고유한 위치이기 때문에, 삽입 연산 시 다른 데이터의 사이에 ..

[자료구조] Red Black Tree (레드 블랙 트리) 란 ?

[자료구조] Red Black Tree (레드 블랙 트리) 란 ? Red Black TreeRBT(Red-Black Tree)는 BST 를 기반으로하는 트리 형식의 자료구조이다. 결론부터 말하자면 Red-Black Tree 에 데이터를 저장하게되면 Search, Insert, Delete 에 O(log n)의 시간 복잡도가 소요된다. 동일한 노드의 개수일 때, depth 를 최소화하여 시간 복잡도를 줄이는 것이 핵심 아이디어이다. 동일한 노드의 개수일 때, depth 가 최소가 되는 경우는 tree 가 complete binary tree 인 경우이다.Red-Black Tree 의 정의Red-Black Tree 는 다음의 성질들을 만족하는 BST 이다.각 노드는 Red or Black이라는 색깔을 갖는다..

[자료구조] 트리(Tree), 이진 트리(Binary Tree), 이진 탐색 트리(Binary Search Tree)

[자료구조] Tree vs Binary Tree vs Binary Search TreeTree트리는 스택이나 큐와 같은 선형 구조가 아닌 비선형 자료구조이다. 트리는 계층적 관계(Hierarchical Relationship)을 표현하는 자료구조이다. 이 트리라는 자료구조는 표현에 집중한다. 무엇인가를 저장하고 꺼내야 한다는 사고에서 벗어나 트리라는 자료구조를 바라보자.트리를 구성하고 있는 구성요소들(용어)Node (노드) : 트리를 구성하고 있는 각각의 요소를 의미한다.Edge (간선) : 트리를 구성하기 위해 노드와 노드를 연결하는 선을 의미한다.Root Node (루트 노드) : 트리 구조에서 최상위에 있는 노드를 의미한다.Terminal Node ( = leaf Node, 단말 노드) : 하위에 ..

[자료구조] Stack vs Queue

[자료구조] Stack vs Queue Stack 선형 자료구조의 일종으로 Last In First Out (LIFO). 즉, 나중에 들어간 원소가 먼저 나온다. 이것은 Stack 의 가장 큰 특징이다. 차곡차곡 쌓이는 구조로 먼저 Stack 에 들어가게 된 원소는 맨 바닥에 깔리게 된다. 그렇기 때문에 늦게 들어간 녀석들은 그 위에 쌓이게 되고 호출 시 가장 위에 있는 녀석이 호출되는 구조이다.Queue 선형 자료구조의 일종으로 First In First Out (FIFO). 즉, 먼저 들어간 놈이 먼저 나온다. Stack 과는 반대로 먼저 들어간 놈이 맨 앞에서 대기하고 있다가 먼저 나오게 되는 구조이다. 참고로 Java Collection 에서 Queue 는 인터페이스이다. 이를 구현하고 있는 Pr..

[자료구조] Array vs LinkedList

[자료구조] Array vs LinkedList Array 가장 기본적인 자료구조인 Array 자료구조는, 논리적 저장 순서와 물리적 저장 순서가 일치한다. 따라서 인덱스(index)로 해당 원소(element)에 접근할 수 있다. 그렇기 때문에 찾고자 하는 원소의 인덱스 값을 알고 있으면 Big-O(1)에 해당 원소로 접근할 수 있다. 즉 random access 가 가능하다는 장점이 있는 것이다. 하지만 삭제 또는 삽입의 과정에서는 해당 원소에 접근하여 작업을 완료한 뒤(O(1)), 또 한 가지의 작업을 추가적으로 해줘야 하기 때문에, 시간이 더 걸린다. 만약 배열의 원소 중 어느 원소를 삭제했다고 했을 때, 배열의 연속적인 특징이 깨지게 된다. 즉 빈 공간이 생기는 것이다. 따라서 삭제한 원소보다 ..

반응형