Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ------------------------------BSF------------------------------
- from collections import defaultdict
- graph = defaultdict(list)
- def addEdge(u,v):
- graph[u].append(v)
- graph[v].append(u)
- def BFS(source):
- open = []
- closed = []
- open.append(source)
- while len(open) > 0:
- node = open[0]
- print(node,sep=" ")
- closed.append(node)
- open.pop(0)
- # print(top)
- neighbours = graph[node]
- for neighbour in neighbours:
- if neighbour not in open and neighbour not in closed:
- # open = open.append(neighbour)
- open = open + [neighbour]
- addEdge(1,2)
- addEdge(1,3)
- addEdge(2,4)
- addEdge(2,5)
- addEdge(3,6)
- addEdge(3,7)
- BFS(1)
- --------------------------------n QUEENS--------------------
- def isSafe(board,row,col):
- for i in range(col):
- if board[row][i] == 1:
- return False
- for i,j in zip(range(row,-1,-1),range(col,-1,-1)):
- if board[i][j] == 1:
- return False
- for i,j in zip(range(row,N),range(col,-1,-1)):
- if board[i][j] == 1:
- return False
- return True
- def solve(board,col):
- if col >= N:
- return True
- for row in range(N):
- if isSafe(board,row,col):
- board[row][col] = 1
- if solve(board,col+1):
- return True
- board[row][col] = 0
- return False
- N = 3
- board = [[0 for _ in range(N)] for _ in range(N)]
- if solve(board,0):
- for row in board:
- print(row)
- else:
- print("Cant place "+ str(N) + " queens on NxN matrix")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement