Tag Archives: floyd warshall algorithm

📊 Graphs in Computer Science


🧩 What is a Graph?

Image
Image
Image

A graph is a powerful non-linear data structure used to represent relationships between objects. It consists of a set of vertices (nodes) and a set of edges (connections) that link pairs of vertices.

Graphs are used to model real-world systems such as:

  • Social networks
  • Transportation systems
  • Computer networks
  • Web page links

Formally, a graph is defined as:

G = (V, E)

Where:

  • V → Set of vertices
  • E → Set of edges

🧠 Key Terminology in Graphs

Image
Image
Image
Image
  • Vertex (Node) → Basic unit of a graph
  • Edge → Connection between vertices
  • Degree → Number of edges connected to a vertex
  • Path → Sequence of vertices connected by edges
  • Cycle → Path that starts and ends at the same vertex
  • Connected Graph → Every vertex is reachable
  • Disconnected Graph → Some vertices are isolated
  • Weighted Graph → Edges have weights/costs
  • Unweighted Graph → No weights on edges

🔗 Types of Graphs


🔹 1. Undirected Graph

Image
Image
Image
Image

Edges have no direction:

A — B

🔹 2. Directed Graph (Digraph)

Image
Image
Image
Image

Edges have direction:

A → B

🔹 3. Weighted Graph

Image
Image
Image
Image

Edges carry weights.


🔹 4. Unweighted Graph

Image
Image
Image

All edges are equal.


🔹 5. Cyclic Graph

Image
Image
Image
Image

Contains cycles.


🔹 6. Acyclic Graph

Image
Image
Image
Image

No cycles present.


🔹 7. Complete Graph

Image
Image
Image
Image

Every vertex connects to every other vertex.


🔹 8. Bipartite Graph

Image
Image
Image
Image

Vertices divided into two sets.


🔹 9. Sparse vs Dense Graph

Image
Image
Image
Image
  • Sparse → Few edges
  • Dense → Many edges

🧱 Graph Representation


🔹 1. Adjacency Matrix

Image
Image
Image
Image

2D matrix representation.


🔹 2. Adjacency List

Image
Image
Image
Image

Stores neighbors of each node.


⚙️ Graph Operations


🔹 1. Traversal

Image
Image
Image

DFS (Depth First Search)

  • Uses stack
  • Explores deep

BFS (Breadth First Search)

  • Uses queue
  • Explores level by level

🔹 2. Searching

Finding a node or path.


🔹 3. Insertion & Deletion

Adding/removing vertices or edges.


🧮 Graph Algorithms


🔹 1. Dijkstra’s Algorithm

Image
Image
Image
Image

Finds shortest path in weighted graphs.


🔹 2. Bellman-Ford Algorithm

Image
Image
Image

Handles negative weights.


🔹 3. Floyd-Warshall Algorithm

Image
Image
Image
Image

All-pairs shortest path.


🔹 4. Kruskal’s Algorithm

Image
Image
Image

Minimum spanning tree.


🔹 5. Prim’s Algorithm

Image
Image
Image
Image

Another MST algorithm.


🔹 6. Topological Sorting

Image
Image
Image
Image

Used in DAGs.


🧮 Time Complexity Overview

AlgorithmComplexity
BFSO(V + E)
DFSO(V + E)
DijkstraO((V+E) log V)
KruskalO(E log E)

⚡ Advantages of Graphs

  • Flexible structure
  • Models real-world relationships
  • Supports complex algorithms
  • Scalable

⚠️ Disadvantages of Graphs

  • Complex implementation
  • High memory usage
  • Difficult debugging

🧠 Advanced Graph Concepts


🔹 1. Strongly Connected Components

Image
Image
Image
Image

🔹 2. Network Flow

Image
Image
Image
Image

🔹 3. Graph Coloring

Image
Image
Image

🔹 4. Eulerian & Hamiltonian Paths

Image
Image
Image
Image

🔬 Applications of Graphs


🌐 1. Social Networks

Image
Image
Image
Image

🗺️ 2. GPS Navigation

Image
Image
Image
Image

🌍 3. Internet & Networking

Image
Image
Image
Image

🧠 4. Artificial Intelligence

Image
Image
Image
Image

🧬 5. Bioinformatics

Image
Image
Image
Image

🔁 Graph vs Tree

FeatureGraphTree
CyclesAllowedNot allowed
ConnectivityNot necessaryAlways connected
StructureGeneralHierarchical

🧪 Memory Representation

Graph stored as:

  • Matrix
  • List
  • Edge list

🚀 Real-World Importance

Graphs are essential in:

  • Machine learning
  • Networking
  • Logistics
  • Game development
  • Data science

🧾 Conclusion

Graphs are among the most powerful and flexible data structures in computer science. They allow representation of complex relationships and are the foundation of many advanced algorithms.

Mastering graphs is crucial for solving real-world problems, especially in areas like AI, networking, and optimization.


🏷️ Tags