Advertisement
qberik

Untitled

Dec 11th, 2022
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1.  
  2.  
  3. class Graph:
  4.  
  5. def __init__( self, adj ):
  6. self.adj = adj
  7. self.v = len(adj)
  8. self.vlist = []
  9.  
  10. def add_edge( self, a, b ):
  11. self.adj[a][b] = 1
  12. self.adj[b][a] = 1
  13. if a == b:
  14. self.adj[a][b] = 2
  15.  
  16. def DFS( self, start, visited = [] ):
  17. vis = []
  18. if ( len(visited) == 0 ):
  19. for i in range( self.v ):
  20. vis.append(False)
  21. else:
  22. vis = visited
  23.  
  24. self.vlist.append(start)
  25.  
  26. vis[start] = True
  27.  
  28. for i in range( self.v ):
  29. if( self.adj[start][i] == 1 and
  30. (not vis[i])):
  31. self.DFS(i,vis)
  32.  
  33.  
  34.  
  35.  
  36. G_1 =[[0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
  37. [0, 0, 1, 0, 1, 0, 0, 0, 0, 0],
  38. [0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
  39. [1, 0, 0, 0, 0, 0, 0, 1, 0, 1],
  40. [0, 1, 0, 0, 0, 1, 0, 0, 1, 0],
  41. [0, 0, 0, 0, 1, 0, 0, 1, 0, 0],
  42. [0, 0, 0, 0, 0, 0, 2, 1, 0, 0],
  43. [0, 0, 0, 1, 0, 1, 1, 0, 0, 0],
  44. [0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
  45. [0, 0, 0, 1, 0, 0, 0, 0, 0, 0]]
  46.  
  47.  
  48. dop_G_1 = G_1
  49.  
  50. for i in range( len( G_1 )):
  51. for j in range( len( G_1 )):
  52. e = 1
  53. if i == j:
  54. e = 2
  55. if G_1[i][j] == e:
  56. dop_G_1[i][j] = 0
  57. if G_1[i][j] == 0:
  58. dop_G_1[i][j] = e
  59.  
  60.  
  61.  
  62.  
  63. G_0 = [ [ 0 for _ in range(len(G_1)) ] for _ in range( len(G_1) ) ]
  64.  
  65.  
  66.  
  67. a = Graph( dop_G_1 )
  68. b = Graph( G_0 )
  69.  
  70. a.DFS(0)
  71.  
  72. for i in range( len( a.vlist ) - 1 ):
  73. b.add_edge( a.vlist[i], a.vlist[i+1] )
  74.  
  75. print( *b.adj, sep='\n' )
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement