Undirected and directed graphs are fundamental concepts in graph theory, which is basically a branch of mathematics that deals with the study of graphs, and it consists of a set of vertices(nodes) connected by edges.

Undirected Graphs
An undirected graph is a graph where the edges do not have a specific direction and it is bidirectional in nature it does not have a parent-child relation concept as there is no particular direction.

Characteristics of Undirected Graphs:
Symmetry:
Symmetry is present in the undirected graph as each edge is bidirectional, so it's not like anyone's the boss. The graph is connected, so you can always find a way to get to any node you want to, and the degree of each vertex tells you how popular that node is in the graph.
Connectivity:
There is just one method to get from one vertex to another in an undirected graph which indicates that the graph is linked.
Algorithms for Undirected Graphs:
Directed Graphs
A directed graph is a graph that is unidirectional in this the edges have a specific direction and the edges have directions specified with them also a directed graph can contain cycles.

Characteristics of Directed Graphs
Asymmetry:
Asymmetry is present in the directed graph as the edges are all one-way, so it's not like everyone is on equal footing and the graph might not be connected, which means there might be some nodes that are totally out of the loop.
Connectivity:
In a directed graph, there may be more than one way to traverse from one vertex to another which means that the graph may not be connected.
Algorithms for Directed Graphs:
Undirected vs Directed Graph
| Undirected Graph | Directed Graph |
|---|---|
| It is simple to understand and manipulate. | It provides a clear representation of relationships with direction. |
| It has symmetry in relationships (A–B is same as B–A). | It has no symmetry (A→B is not the same as B→A). |
| It requires less memory, hence more memory-efficient. | It may require more memory because of storing direction. |
| It provides limited modeling capability for directed relationships | It is suitable for modeling processes or workflows. |
| Traversal is simple because no direction check is needed. | Traversal is more complex due to direction. |
| It is difficult to represent specific scenarios with one-way relations. | It is easy to represent one-direction scenarios. |
Applications of Undirected Graph:
- Social Networks: In social networks, you can use undirected graphs to model them. You see, each vertex in the graph represents an individual, and each edge represents a friendship or a connection between those individuals.
- Traffic flow optimization: Undirected graphs are also used to model road networks and each vertex will represent an intersection or an endpoint, and each edge represents a road.
Applications of Directed Graph:
- Computer networks: Directed graphs are basically a way to represent the internet as a bunch of devices connected.
- Project management: Directed graph in project management the vertices will represent different tasks and the edges represent the dependencies between them. So basically, it's a way to make sure everything gets done in the right order.