def BreadthWidthSearch(visibilityGraph, vrtx1, vrtx2):
    #Initialize the path
    path = Path()
    #Initialize the queue
    queue = Queue()
    #Add the starting vertex to the queue
    queue.Enqueue(vrtx1)
    #mark as visited
    visitedVrtcs = [vrtx1]

    #while the queue is not empty run until empty
    while (len(queue.GetQueue()) != 0):
        vrtx = queue.Dequeue()
        neighbor = visibilityGraph.GetVertexEdges(vrtx)
        for nxtVrtx in neighbor:
            #if the neighbor vertex has not been visited
            if ((visitedVrtcs.count(nxtVrtx) == 0)):
                #queue the next vertex
                queue.Enqueue(nxtVrtx)
                #mark as visited
                visitedVrtcs.append(nxtVrtx)

                path.AddToPath(vrtx, nxtVrtx)

    path.GetPaths()
    return path
Ejemplo n.º 2
0
 def test_Enqueue_And_Dequeue(self):
     expectedResult = 1
     testQueue = Queue()
     testQueue.Enqueue(1)
     testQueue.Enqueue(2)
     testQueue.Enqueue(3)
     testResult = testQueue.Dequeue()
     self.assertEqual(expectedResult, testResult)
Ejemplo n.º 3
0
 def test_Empty_And_Size(self):
     expectedSize = 3
     testQueue = Queue()
     testQueue.Enqueue(1)
     testQueue.Enqueue(2)
     testQueue.Enqueue(3)
     testSize = testQueue.Size()
     self.assertEqual(testSize, expectedSize)
     isEmpty = testQueue.IsEmpty()
     self.assertEqual(isEmpty, False)
     testQueue.Dequeue()
     testQueue.Dequeue()
     testQueue.Dequeue()
     isEmpty = testQueue.IsEmpty()
     self.assertEqual(isEmpty, True)
Ejemplo n.º 4
0
class BFS:
    def __init__(self,graph):
        self.size = len(graph)
        self.g = graph
        self.q = Queue(self.size)
        self.visited = []
        for i in range(self.size):
            self.visited.append(0)

    def bfs(self,v):
        self.q.Enqueue(v)
        self.visited[v] = 1
        print("visited vertax : "+ str(v))
        while self.q.is_empty() != True:
            v = self.q.Dequeue()
            for i in range(self.size):
                if self.g[v][i] == 1 and self.visited[i] == 0:
                    print("visited vertax : "+ str(i))
                    self.q.Enqueue(i)
                    self.visited[i] = 1
Ejemplo n.º 5
0
from Queue import Queue

The_Queue = Queue()

The_Queue.Enqueue('Hello')
The_Queue.Enqueue('World')
The_Queue.Enqueue('Hady')

print(The_Queue.Top())

print(The_Queue.Dequeue())
print(The_Queue.Dequeue())
print(The_Queue.Dequeue())

print(The_Queue.Dequeue())
Ejemplo n.º 6
0
        Menu.Interface_Task3()
        #Создание объекта очереди:
        Q = Queue()
        while True:
            Step = Menu.Input_Controller()
            #Создание и заполнение очереди:
            if Step == 1:
                print ("Меню заполнения очереди:")
                print ("Введите изначальную длину очереди:")
                Length = Menu.Input_Controller()
                #Создание объекта очереди:
                Q = Queue()
                for i in range(1, Length + 1):
                    print ("Введите ", i, " элемент очереди:")
                    Data = Menu.Int_Controller()
                    Q.Enqueue(Data)
                    print ("Элемент успешно помещен в очередь!")
                print ("Ввод списка завершен.")
                Menu.Interface_Task3()

            #Вывод очереди:
            elif Step == 2:
                print ("Меню вывода очереди:")
                if Q.length == 0:
                    print("Очередь пуста!")
                else:
                    print("Длина очереди: ", Q.length)
                    print("Очередь: ", Q.__repr__())
                    print ("Вывод очереди завершен.")
                Menu.Interface_Task3()