DS 공부
cpp과 c#으로 공부합니다.
-
Array
-
List
- Array Based Fixed Size List
- Array Based Resizable List
- Single linked list
- Double linked list
- Circular Single linked list
- Circular Double linked list
- Skip List
-
Stack
- Array base fixed size
- Array base resizable
- Linked list base
-
Queue
- Array base fixed size
- Array base resizable
- Linked list base
-
Hash Table
- Direct Access Hash Table
- Custom Hashing Hash Table
- Separate Chaining Hash Table
- Coalesced Chaining Hash Table
- Linear Probing Hash Table
- Quadratic Probing Hash Table
- Double Hashing Hash Table
- Cuckoo Hashing Hash Table
- Hopscotch Hashing Hash Table
- Robin Hood Hashing Hash Table
-
Graph : Each with Adjacency List, Adjacency Matrix, Incident Matrix
- Directed Graph
- Undirected Graph
- Weighted Directed Graph
- Weighted Undirected Graph
-
Tree
- General Tree
- Binary Search Tree
- B-Tree
- Dictionary with Red-Black Tree
- AVL Tree
- Priority Queue with Heap
구현 및 사용의 정확성을 우선시하는데 목적을 두어 의도치 않게 동작 수행시에 과하다 싶을 정도의 Exception을 발생시킵니다. 예를 들어 Add()등의 함수에서 이미 값이 존재할 경우에도 Exception을 발생시킵니다. 혹은 Remove(key)등의 함수에서 해당 key가 이미 존재하지 않을경우 그대로 return하는 것이 아니라 InvalidOperationException을 발생시킵니다. 실용적으로 예외 사항 발생시 그대로 return 하거나 값을 수정할 수도 있지만 해당 자료구조의 동작원리에 좀더 집중하고자 함입니다. 따라서 최소구현만을 유지한채 CsUnitTest.csproj의 UnitTest에 따라 올바른 사용례에서의 유효성을 검사합니다. 이에 따라 여러 요소를 동시에 추가하는 AddRange(), Add~~~s()등의 편의성 함수는 구현하지 않습니다.