# Data Structures: Unweighted Directed Graphs

Learning >
Unweighted Directed Graph Data Structure

## What is an Unweighted Directed Graph?

An **unweighted directed graph** is a data structure that extends Unweighted Graph by assuming all edges to be unidirectional by default.
As a **directed graph**, once an edge between vertex A and B is set, it doesn't mean B will be connected to A as well, unless specifically set.

## How can it be implemented?

This data structure merely completes Unweighted Graph specification and defines no further operations.
As a complete implementation, it must take a decision how to store vertexes inside. Options are same as those used in storing EDGES:

- Dynamic Array implementing List of VERTEX: very fast to iterate, very slow to search a value/vertex into. To be used if value inside vertex is not unique! If used, EDGES must use same storage option.
- Hash Table implementing Set of VERTEX: quite fast to iterate, very fast to search a value/vertex into. To be used if value inside vertex is unique! If used, EDGES must use same storage option.

If Hash Table implementing Set solution is chosen, two more operations
can be generalized for **unweighted directed graph**, both executed in constant O(1) time:

**Operation** |
**Arguments** |
**Returns** |
**Description** |

contains |
DATA |
boolean |
Checks if graph contains a vertex whose value equals that of input. |

search |
DATA |
VERTEX |
Searches graph for a vertex whose value equals that of input. |