Muhammad Magdi
Hundreds of interesting computational problems are
couched in terms of graphs.--CLRS
Graphs have applications in a host of different domains,
including mapping, transportation, electrical engineering, and computer networks.--Data Structures and Algorithms in C++
Pairwise connections between items play a critical role in a vast array of computational applications.
--Algorithms Book
Usually used to represent object in a given problem
Usually used to represent relationships between those objects (nodes)
A way of representing relationships between pairs of objects. Visualized as circles connected by lines representing nodes and edges respectively
Nodes a, b are called adjacents (Neighbors), iff there's a direct edge between them.
A sequence of nodes connected by edges.
A Path whose first and last nodes are the same.
A graph having multiple edges between the same pair of nodes.
An edge connecting a node to itself.
A graph that's neither multigraph nor having self-loops.
A graph whose all edges are having directions.
A graph whose all edges are NOT having directions.
A graph having a weight (number) associated with each edge.
A graph whose all edges are considered equivalent in length (weight).
A graph in which there's a path between every pair of nodes.
A graph consisted of a set of connected components (subgraphs).
A graph with no cycles.
A graph that is/contains a cycle.
A graph having a relatively few of the possible edges missing
A graph having a relatively few of the possible edges present
A graph whose nodes or edges are not explicitly represented as objects in computer memory, but are determined algorithmically in runtime from some input.
--Wikipedia
A graph in which each pair of nodes is directly connected by an edge
The most dense graph
A graph that can be divided into 2 sets such that there's no edge between nodes within the same set.
that means:
1. One Connected Component
2. Edges = nodes - 1
3. Acyclic
Directed Acyclic Graph