#### World's Best AI Learning Platform with profoundly Demanding Certification Programs

Designed by IITian's, only for AI Learners.

Download our e-book of Attention Mechanism

What is use of rank() function? How to know given a binary tree is a binary search tree or not? For loop giving incorrect answer How to Choose a classification algorithm for particular problem? Remove duplicate characters in a given string keeping only the first occurrences. For example, if the input is ‘tree traversal’ the output will be ‘tre avsl’. What is list and explain list methods? How to setting up a SQLite database for data storage? How garbage collection implemented in python? Join Discussion

4 (4,001 Ratings)

220 Learners

Jun 24th (7:00 PM) 240 Registered

Neha Kumawat

10 months ago

A graph is a pictorial representation of a set
of objects where some pairs of objects are connected by links. The
interconnected objects are represented by points known as **vertices,** and
the links that connect the vertices are called **edges**.

The different terms and functionalities
associated with a graph is described in great detail in this article later.

Let’s see how to create a graph and add various
data elements to it using a python program.

- Display graph vertices
- Display graph edges
- Add a vertex
- Add an edge
- Creating a graph

We
can represent a graph in python using dictionary data types. Here the vertices
are the keys of the dictionary and the connection between the vertices also
known as edges are represented as the values in the dictionary.

Let’s
a take graph

Graph

In
the above graph we can see the graph as

```
graph_data
= { "a" : ["b","c"],
"b" : ["a",
"d"],
"c" : ["a",
"d"],
"d" : ["e"],
"e" : ["d"]
}
graph_data
= { "a" : ["b","c"], "b" : ["a","d"], "c" : ["a","d"],"d" : ["e"],"e" : ["d"]}
#
Printing the graph
print(graph_data)
```

```
{'a': ['b', 'c'], 'b': ['a', 'd'], 'c': ['a', 'd'], 'd': ['e'], 'e': ['d']}
```

By using the keys of the graph dictionary, we
display the graph vertices. Here we use the keys() method of python dictionary data
type.

```
class
graph:
def __init__(self,gdict=none):
if gdict is none:
gdict = []
self.gdict = gdict
```

```
def getVertices(self):
return list(self.gdict.keys())
```

```
graph_data
= { "a" : ["b","c"],
"b" : ["a",
"d"],
"c" : ["a",
"d"],
"d" : ["e"],
"e" : ["d"]
}
a =
graph(graph_data)
print(a.getVertices())
```

`['a', 'b', 'c', 'd', 'e']`

Finding graph edges is a little difficult than
the finding of the graph vertices. Here we have to find each of the pairs of
vertices which have an edge in between them.

Here, we create
an empty list of edges then we run an iteration over the edge’s values
associated with each of the vertices. A list is formed containing the distinct group of edges found from
the vertices is shown below.

```
class graph:
def __init__(self,gdict=none):
if gdict is none:
gdict = {}
self.gdict = gdict
def edges(self):
return self.findedges()
```

```
def findedges(self):
edgename = []
for vrtx in self.gdict:
for nxtvrtx in self.gdict[vrtx]:
if {nxtvrtx, vrtx} not in
edgename:
edgename.append({vrtx,
nxtvrtx})
return edgename
```

```
graph_data = { "a" :
["b","c"],
"b" : ["a",
"d"],
"c" : ["a",
"d"],
"d" : ["e"],
"e" : ["d"]
}
a = graph(graph_data)
print(a.edges())
```

`[{'b', 'a'}, {'a', 'c'}, {'b', 'd'}, {'d', 'c'}, {'d', 'e'}]`

Adding a vertex is straight forward where we add
another additional key to the graph dictionary.

Below an example is shown

```
class graph:
def __init__(self,gdict=none):
if gdict is none:
gdict = {}
self.gdict = gdict
def getVertices(self):
return list(self.gdict.keys())
```

```
def addVertex(self, vrtx):
if vrtx not in self.gdict:
self.gdict[vrtx] = []
```

```
graph_data = { "a" :
["b","c"],
"b" : ["a",
"d"],
"c" : ["a",
"d"],
"d" :
["e"],
"e" : ["d"]
}
a = graph(graph_data)
a.addVertex("f")
print(a.getVertices())
```

`['a', 'b', 'c', 'd', 'e', 'f']`

Adding
an edge to an existing graph is done as treating the new vertex as a tuple and
validating if the edge is already present. If it is not present then the edge
is added.

An
example is shown below

```
class graph:
def __init__(self,gdict=none):
if gdict is none:
gdict = {}
self.gdict = gdict
def edges(self):
return self.findedges()
```

```
def AddEdge(self, edge):
edge = set(edge)
(vrtx1, vrtx2) = tuple(edge)
if vrtx1 in self.gdict:
self.gdict[vrtx1].append(vrtx2)
else:
self.gdict[vrtx1] = [vrtx2]
```

```
def findedges(self):
edgename = []
for vrtx in self.gdict:
for nxtvrtx in self.gdict[vrtx]:
if {nxtvrtx, vrtx} not in
edgename:
edgename.append({vrtx,
nxtvrtx})
return edgename
```

```
graph_data = { "a" :
["b","c"],
"b" : ["a",
"d"],
"c" : ["a",
"d"],
"d" :
["e"],
"e" : ["d"]
}
a = graph(graph_data)
a.AddEdge({'a','e'})
a.AddEdge({'a','c'})
print(a.edges())
```

`[{'b', 'a'}, {'a', 'c'}, {'a', 'e'}, {'b', 'd'}, {'d', 'c'}, {'d', 'e'}]`

For more blogs/courses on data science, machine learning, artificial intelligence, and new technologies do visit us at** InsideAIML.**