Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d87ec0a

Browse files
BFS code added
1 parent 34c0da5 commit d87ec0a

File tree

5 files changed

+374
-0
lines changed

5 files changed

+374
-0
lines changed

‎BredthFirstSearch/.idea/BredthFirstSearch.iml‎

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎BredthFirstSearch/.idea/misc.xml‎

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎BredthFirstSearch/.idea/modules.xml‎

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎BredthFirstSearch/.idea/workspace.xml‎

Lines changed: 297 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎BredthFirstSearch/BFS.py‎

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
2+
# Vertices or Nodes in given Graph
3+
class Node(object):
4+
def __init__(self, name):
5+
self.name = name # Name of Node
6+
self.adjacencyList = [] # Adjacency List
7+
self.visited = False # Boolean to check if we have visited a node or not
8+
self.predecessor = None # Previous Vertex/Node in BFS
9+
10+
11+
# Bredth First Search
12+
class BredthFirstSearch(object):
13+
# startNode: Starting Node from where we need to start BFS
14+
def bfs(self, startNode):
15+
# For BFS, using Queue as ADT
16+
queue = []
17+
# Initially, first value in the Queue
18+
queue.append(startNode)
19+
# That node is visited, so True
20+
startNode.visited = True
21+
22+
# While queue is not empty
23+
while queue:
24+
# Actual node is the first node. FIFO Queue
25+
actualNode = queue.pop(0)
26+
print('%s' % actualNode.name)
27+
28+
# Visit all Neighbors of the current Node
29+
for n in actualNode.adjacencyList:
30+
# If Neighboring Node has not been visited, set visited to True and add to Queue
31+
if not n.visited:
32+
n.visited = True
33+
queue.append(n)
34+
35+
36+
# Testing
37+
if __name__ == '__main__':
38+
node1 = Node('A')
39+
node2 = Node('B')
40+
node3 = Node('C')
41+
node4 = Node('D')
42+
node5 = Node('E')
43+
node6 = Node('F')
44+
45+
node1.adjacencyList.append(node2)
46+
node1.adjacencyList.append(node3)
47+
node2.adjacencyList.append(node4)
48+
node4.adjacencyList.append(node5)
49+
node4.adjacencyList.append(node6)
50+
51+
BFS = BredthFirstSearch()
52+
BFS.bfs(node1)
53+
54+
# -------------------------- EOC --------------------------

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /