Beispiel #1
0
 def traverseBFS(self):
     keys = []
     bfsQ = Queue()
     bfsQ.enQueue(self.root)
     cur = bfsQ.deQueue()
     while cur:
         if (cur != self.root):
             keys.append(cur.key)
         for node in cur.next:
             bfsQ.enQueue(node)
         cur = bfsQ.deQueue()
     return ', '.join([str(key) for key in keys])
 def traverseBFS(self):
     keys = []
     bfsQ = Queue()
     bfsQ.enQueue(self.root)
     cur = bfsQ.deQueue()
     while cur:
         #print("cur.key = %s"%cur.key)
         keys.append(cur.key)
         #print("%s added to keys" % str(cur.key))
         if (cur.left):
             bfsQ.enQueue(cur.left)
             #print('cur.left.key = %s' % cur.left.key)
         if (cur.right):
             bfsQ.enQueue(cur.right)
             #print("cur.right.key = %s"%cur.right.key)
         cur = bfsQ.deQueue()
         #print("--------------------------------")
     return keys
Beispiel #3
0
 def traverseBFS(self):
     string = ''
     bfsQ = Queue()
     bfsQ.enQueue(self.root)
     cur = bfsQ.deQueue()
     while cur:
         string += ('(%s)<-' % cur.parent.key if cur.parent else '(None)<-')
         string += str(cur.key)
         string += ('->(%s,' % cur.left.key if cur.left else '->(None,')
         string += ('%s)\n' % cur.right.key if cur.right else 'None)\n')
         if (cur.left):
             bfsQ.enQueue(cur.left)
         if (cur.right):
             bfsQ.enQueue(cur.right)
         cur = bfsQ.deQueue()
     if string == '':
         string = '(Empty)'
     return string
Beispiel #4
0
 def traverseBFS(self):
     string = ''
     bfsQ = Queue()
     bfsQ.enQueue(self.root)
     cur = bfsQ.deQueue()
     while cur:
         string += ('\n(%s)\n' %
                    cur.parent.key if cur.parent else '\n(None)\n')
         string += ('<%s>' % str(cur.key))
         string += ('(BF: %s)' % (cur.BF))
         string += ('\n(%s,' % cur.left.key if cur.left else '\n(None,')
         string += ('%s)\n____' %
                    cur.right.key if cur.right else 'None)\n____')
         if (cur.left):
             bfsQ.enQueue(cur.left)
         if (cur.right):
             bfsQ.enQueue(cur.right)
         cur = bfsQ.deQueue()
     if string == '':
         string = '(Empty)'
     return string
Beispiel #5
0
 def traverseBFS(self,source):
     bfsQ = Queue()
     distanceTo = {}
     if not source in self.vertexList:
         print('Vertex %s does not exist'%source)
         return False
     bfsQ.enQueue(source)
     cur = bfsQ.deQueue()
     distanceTo[cur] = 0
     while cur!=None:
         #Used to index into the adjacency matrix
         index = self.vertexList[cur]
         destIndex = 0
         for edge in self.matrix[index]:
             if edge:
                 for key,value in self.vertexList.items():
                     if value == destIndex:
                         #If vertex is undiscovered
                         if not key in distanceTo:
                             bfsQ.enQueue(key)
                             distanceTo[key] = distanceTo[cur]+1
             destIndex+=1
         cur = bfsQ.deQueue()
     return distanceTo
 def traverseBFS(self, source):
     path = ''
     for key, vertex in self.vertexList.items():
         vertex.visit = None
         vertex.dist = float('inf')
         vertex.predecessor = None
     self.vertexList[source].visit = False
     self.vertexList[source].dist = 0
     self.vertexList[source].predecessor = None
     bfsQ = Queue()
     bfsQ.enQueue(self.vertexList[source])
     curVertex = bfsQ.deQueue()
     while curVertex:
         for vertex in curVertex.next:
             if vertex.visit == None:
                 vertex.visit = False
                 vertex.dist = curVertex.dist + 1
                 vertex.predecessor = curVertex
                 bfsQ.enQueue(vertex)
         curVertex.visit = True
         path += ('Vertex %s, Distance: %s\n' %
                  (curVertex.name, curVertex.dist))
         curVertex = bfsQ.deQueue()
     return path