Graph Theory

  1. Graph Traversal
    1. Eulerian Paths and Circuits
      1. Definitions
        1. Eulerian Path
          1. Eulerian Circuit
            1. Eulerian Graphs
            2. Conditions for Existence
              1. Degree Conditions for Undirected Graphs
                1. In-degree and Out-degree Conditions for Directed Graphs
                  1. Necessary and Sufficient Conditions
                  2. Algorithms for Finding Eulerian Paths
                    1. Fleury's Algorithm
                      1. Algorithm Steps
                        1. Edge Selection Rules
                          1. Complexity Analysis
                          2. Hierholzer's Algorithm
                            1. Algorithm Steps
                              1. Efficiency Improvements
                          3. Hamiltonian Paths and Circuits
                            1. Definitions
                              1. Hamiltonian Path
                                1. Hamiltonian Circuit
                                  1. Hamiltonian Graphs
                                  2. Sufficient Conditions
                                    1. Dirac's Theorem
                                      1. Ore's Theorem
                                        1. Other Sufficient Conditions
                                        2. Necessary Conditions
                                          1. Vertex Degree Requirements
                                            1. Structural Constraints
                                            2. Computational Complexity
                                              1. NP-Completeness of Hamiltonian Cycle Problem
                                                1. Implications for Algorithm Design
                                                  1. Approximation and Heuristic Approaches
                                                2. Graph Traversal Algorithms
                                                  1. Breadth-First Search (BFS)
                                                    1. Algorithm Description
                                                      1. Implementation with Queues
                                                        1. BFS Tree
                                                          1. Level Structure
                                                            1. Applications
                                                              1. Shortest Path in Unweighted Graphs
                                                                1. Connected Component Detection
                                                                  1. Bipartiteness Testing
                                                                2. Depth-First Search (DFS)
                                                                  1. Algorithm Description
                                                                    1. Implementation with Stacks/Recursion
                                                                      1. DFS Tree
                                                                        1. Parenthesis Theorem
                                                                          1. Edge Classification
                                                                            1. Tree Edges
                                                                              1. Back Edges
                                                                                1. Forward Edges
                                                                                  1. Cross Edges
                                                                                  2. Applications
                                                                                    1. Cycle Detection
                                                                                      1. Topological Sorting
                                                                                        1. Strongly Connected Components