Graphs are data structures used to represent connections between pairs of elements called nodes. The connections between nodes are called edges. There are different types of graphs such as weighted graphs where edges have a cost or value. Graphs can be represented using data structures like adjacency matrices and adjacency lists. Common graph algorithms include depth-first search (DFS), breadth-first search (BFS), minimum spanning trees (MST), shortest path algorithms like Dijkstra's algorithm, and topological sorting. Graphs have many real-world applications such as modeling transportation and social networks.