Repository for the Data Structures and Algorithms course
- Course program
- Trainers
- Resources
- Examination
- Data Structures Overview
- Linear Structures, Trees, Hash Tables, Others
- Algorithms Overview
- Sorting and Searching, Combinatorics, Dynamic Programming, Graphs, Others
- Algorithms Complexity
- Time and Memory Complexity
- Mean, Average and Worst Case
- Asymptotic Notation O(g)
- Lists
- Static and Linked Implementation
- List and LinkedList
- Stacks
- Static and Linked Implementation
- The Stack Class
- Queues
- Circular and Linked Implementation
- The Queue Class
- Tree-like Data Structures
- Trees and Related Terminology
- Implementing Trees
- Traversing Trees
- DFS and BFS Traversals
- Balanced Search Trees
- Balanced Trees in .NET
- Dictionaries
- Hash Tables
- Dictionary<TKey, TValue> Class
- Sets: HashSet and SortedSet
- Standard .NET Data Structures
- Special .NET Collections
- Wintellect Power Collections
- Installation
- Power Collection Classes
- Implementing Priority Queue
- C5 Collections
- Other Advanced Data Structures
- Suffix trees, interval trees, ropes, tries, etc.
- Fundamental Data Structures – Comparison
- Arrays
- Lists
- Trees
- Hash-Tables
- Sets
- Bags
- Choosing Proper Data Structure
- What is Recursion?
- Recursion with Examples
- Calculating Factorial Recursively
- Generating All 0/1 Vectors Recursively
- Finding All Paths in a Labyrinth Recursively
- Recursion or Iteration?
- Harmful Recursion
- Optimizing Bad Recursion
- Memoization
- Sorting and classifications
- Review of the most popular sorting algorithms:
- Bubble sort
- Quick sort
- Merge sort
- Heap sort
- Shuffling algorithms
- Searing algorithms
- Linear search
- Binary search
- Interpolation search
- Definitions in Combinatorics
- Permutations
- Combinations
- Pascal's Triangle
- Binary Vectors
- Resources
- Minimum and Maximum
- Divide-and-Conquer
- Dynamic programming Concepts
- Dynamic programming with Examples:
- Fibonacci numbers
- Longest increasing subsequence
- Longest common subsequence
- Graph Definitions and Terminology
- Representing Graphs in C#
- Graph Traversal Algorithms
- Connectivity
- Dijkstra’s Algorithm
- Topological sorting
- Prim and Kruskal
- Naive search
- Rabin-Karp
- Hashing
- Knuth-Morris-Pratt
- Regular Expression Overview
- Regex syntax
- Using regular expression in C#
- Convex hull
- Vectors
- Line segment intersection
- Closest pair of points