## Introduction

Welcome to the documentation for ARGraphs.

### What is ARGraphs?

ARGraphs is a library that allows you to perform various graph-based operations. It provides a set of tools to create, manipulate, and analyze graphs in your applications.

### Features

- Create directed and undirected graphs
- Add and remove vertices and edges
- Traverse graphs using different algorithms
- Calculate graph properties such as shortest path, connectivity, centrality, etc.

### Installation

To start using ARGraphs, follow these installation steps:

- Install ARGraphs via Cocoapods by adding the following line to your Podfile:

`pod 'ARGraphs'`

- Run the command
`pod install`

to install the ARGraphs library. - Import the ARGraphs framework into your project:

`import ARGraphs`

### Usage

#### Creating a Graph

To create a graph, start by initializing an instance of the Graph class:

```
// Create an undirected graph
let graph = Graph(isDirected: false)
```

#### Adding Vertices and Edges

You can add vertices and edges to the graph using the following methods:

```
// Add a vertex
graph.addVertex("Vertex A")
// Add an edge
graph.addEdge(from: "Vertex A", to: "Vertex B", weight: 1.0)
```

#### Traversing a Graph

You can traverse the graph using different algorithms such as depth-first search (DFS) or breadth-first search (BFS).

Here’s an example of depth-first search starting from a given vertex:

```
graph.depthFirstSearch(from: "Vertex A") { vertex in
print(vertex)
}
```

#### Calculating Graph Properties

You can calculate various properties of the graph, such as shortest path, connectivity, centrality, etc.

For example, to find the shortest path between two vertices, use the following method:

```
let shortestPath = graph.shortestPath(from: "Vertex A", to: "Vertex B")
print(shortestPath)
```

## Conclusion

Congratulations! You now have an overview of the ARGraphs library and how to use its features. Keep exploring and experimenting with different graph operations to enhance your applications.