广度优先遍历

graph ={}
graph["you"] = ["alice","bob","claire"]
graph["alice"] =["anuj","peggy"]
graph["bob"] = ["peggy"]
graph["claire"] = ["fry","tiny","pandy"]

from collections import deque
search_queue = deque()
search_queue += graph["you"]

def person_is_seller(name):
     return name[-1] == 'm'

while search_queue:
    person = search_queue.popleft()
    if person_is_seller(person):
        print person + "is a mango seller!"
        #return True
    else:
        search_queue += graph[person]
#return False

def search(name):
    search_queue = deque()
    search_queue += graph[name]
    searched = []
    while search_queue:
        person = search_queue.popleft()
        if person_is_seller(person):
            print person + " is a monjo seller"
            return True
        else:
            search_queue += graph[person]
            searched.append(person)
    return False




你可能感兴趣的:(广度优先遍历)