Data Structures

  1. Graph Data Structures
    1. Introduction to Graphs
      1. Core Terminology
        1. Vertex
          1. Edge
            1. Path
              1. Cycle
                1. Connectedness
                  1. Degree of Vertex
                  2. Types of Graphs
                    1. Undirected Graphs
                      1. Directed Graphs
                        1. Unweighted Graphs
                          1. Weighted Graphs
                            1. Cyclic Graphs
                              1. Acyclic Graphs
                                1. Directed Acyclic Graphs
                                  1. Simple Graphs
                                    1. Multigraphs
                                      1. Self-loops
                                    2. Graph Representations
                                      1. Adjacency Matrix
                                        1. Structure and Properties
                                          1. Space Complexity
                                            1. Time Complexity
                                              1. Weighted Edge Representation
                                              2. Adjacency List
                                                1. Structure and Properties
                                                  1. Space Complexity
                                                    1. Time Complexity
                                                      1. Weighted Edge Representation
                                                      2. Edge List
                                                        1. Structure
                                                          1. Use Cases
                                                        2. Graph Traversal Algorithms
                                                          1. Breadth-First Search
                                                            1. Algorithm Implementation
                                                              1. Queue-based Approach
                                                                1. Shortest Path in Unweighted Graphs
                                                                  1. Connected Components Detection
                                                                  2. Depth-First Search
                                                                    1. Algorithm Implementation
                                                                      1. Recursive Approach
                                                                        1. Iterative Approach
                                                                          1. Cycle Detection
                                                                            1. Topological Sort
                                                                              1. Connected Components Detection
                                                                            2. Common Graph Algorithms
                                                                              1. Shortest Path Algorithms
                                                                                1. Dijkstra's Algorithm
                                                                                  1. Priority Queue Usage
                                                                                    1. Non-negative Weight Limitation
                                                                                    2. Bellman-Ford Algorithm
                                                                                      1. Negative Weight Handling
                                                                                        1. Negative Cycle Detection
                                                                                        2. Floyd-Warshall Algorithm
                                                                                          1. All-Pairs Shortest Paths
                                                                                        3. Minimum Spanning Tree
                                                                                          1. Prim's Algorithm
                                                                                            1. Greedy Approach
                                                                                              1. Priority Queue Implementation
                                                                                              2. Kruskal's Algorithm
                                                                                                1. Edge Sorting
                                                                                                  1. Disjoint Set Usage
                                                                                                2. Topological Sorting
                                                                                                  1. Directed Acyclic Graph Requirement
                                                                                                    1. Kahn's Algorithm
                                                                                                      1. DFS-based Topological Sort