def CreateMatrix(NumNodes, Edges):
Matrix = [[0 for i in range(NumNodes)] for j in range(NumNodes)]
for edge in Edges:
A=edge[0]
B=edge[1]
Matrix[A][B]=1
Matrix[B][A]=1
return Matrix
def CountNeighbors(Matrix, Node):
cnt = 0
for i in range(len(Matrix[Node])):
if Matrix[Node][i]==1:
cnt+=1
return cnt
def BreadthFirst(Matrix, Start):
visited = [False] * len(Matrix)
result = []
queue = [Start]
visited[Start] = True
result.append(Start)
while len(queue) > 0:
current = queue.pop(0)
for i in range(len(Matrix[current])):
if Matrix[current][i] == 1 and visited[i] == False:
visited[i] = True
result.append(i)
queue.append(i)
return result
Edges = [[0, 1], [0, 2], [1, 3], [2, 4], [3, 5], [4, 5]]
Matrix = CreateMatrix(6, Edges)
print(CountNeighbors(Matrix, 0))
print(BreadthFirst(Matrix, 0))
print(BreadthFirst(Matrix, 3))
ZGVmIENyZWF0ZU1hdHJpeChOdW1Ob2RlcywgRWRnZXMpOgogICAgTWF0cml4ID0gW1swIGZvciBpIGluIHJhbmdlKE51bU5vZGVzKV0gZm9yIGogaW4gcmFuZ2UoTnVtTm9kZXMpXQoKICAgIGZvciBlZGdlIGluIEVkZ2VzOgogICAgICAgIEE9ZWRnZVswXQogICAgICAgIEI9ZWRnZVsxXQogICAgICAgIE1hdHJpeFtBXVtCXT0xCiAgICAgICAgTWF0cml4W0JdW0FdPTEKCiAgICByZXR1cm4gTWF0cml4CgpkZWYgQ291bnROZWlnaGJvcnMoTWF0cml4LCBOb2RlKToKICAgIGNudCA9IDAKICAgIGZvciBpIGluIHJhbmdlKGxlbihNYXRyaXhbTm9kZV0pKToKICAgICAgICBpZiBNYXRyaXhbTm9kZV1baV09PTE6CiAgICAgICAgICAgIGNudCs9MQogICAgcmV0dXJuIGNudAoKCmRlZiBCcmVhZHRoRmlyc3QoTWF0cml4LCBTdGFydCk6CiAgICB2aXNpdGVkID0gW0ZhbHNlXSAqIGxlbihNYXRyaXgpCiAgICByZXN1bHQgPSBbXQogICAgcXVldWUgPSBbU3RhcnRdCgogICAgdmlzaXRlZFtTdGFydF0gPSBUcnVlCiAgICByZXN1bHQuYXBwZW5kKFN0YXJ0KQoKICAgIHdoaWxlIGxlbihxdWV1ZSkgPiAwOgogICAgICAgIGN1cnJlbnQgPSBxdWV1ZS5wb3AoMCkKCiAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKE1hdHJpeFtjdXJyZW50XSkpOgogICAgICAgICAgICBpZiBNYXRyaXhbY3VycmVudF1baV0gPT0gMSBhbmQgdmlzaXRlZFtpXSA9PSBGYWxzZToKICAgICAgICAgICAgICAgIHZpc2l0ZWRbaV0gPSBUcnVlCiAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGkpCiAgICAgICAgICAgICAgICBxdWV1ZS5hcHBlbmQoaSkKCiAgICByZXR1cm4gcmVzdWx0CgpFZGdlcyA9IFtbMCwgMV0sIFswLCAyXSwgWzEsIDNdLCBbMiwgNF0sIFszLCA1XSwgWzQsIDVdXQpNYXRyaXggPSBDcmVhdGVNYXRyaXgoNiwgRWRnZXMpCgpwcmludChDb3VudE5laWdoYm9ycyhNYXRyaXgsIDApKQpwcmludChCcmVhZHRoRmlyc3QoTWF0cml4LCAwKSkKcHJpbnQoQnJlYWR0aEZpcnN0KE1hdHJpeCwgMykpCg==
2
[0, 1, 2, 3, 4, 5]
[3, 1, 5, 0, 4, 2]