Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.95 KB | None | 0 0
  1. from collections import deque
  2.  
  3. class Vertex:
  4.     def __init__(self):
  5.         self.visited = False
  6.         self.d = None # dystans tanego wierzchołka od roota
  7.         self.parent = None
  8.         self.pos = None
  9.  
  10. def BFS(G, s):
  11.     Q = deque()
  12.     n = len(G[0])
  13.     V = n * [None]
  14.     for i in range(n):
  15.         V[i].pos = i
  16.     V[s].d = 0
  17.     V[s].visited = True
  18.     #V[s].parent = None  nie potrzebne po przejsciu pętli
  19.     #V[s].pos = s
  20.     Q.appendleft(V[s])
  21.     while (len(Q) > 0):
  22.         u = Q.pop()
  23.         for j in range(n):
  24.             if(G[u.pos][j] == 1):
  25.                 if(not V[j].visited):
  26.                     V[j].visited = True
  27.                     V[j].d = u.d + 1
  28.                     V[j].parent = u.pos
  29.                     Q.put(V[j])
  30.     Wynik = n * [None]
  31.     for i in range(n):
  32.         Wynik[i][0] = V[i].parent
  33.         Wynik[i][1] = V[i].d
  34.     return Wynik;
  35.  
  36.     BFS([[0,1,1,0],[0,0,0,1],[0,1,0,1],[0,0,0,0]] , 0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement