def crawl_web(seed): # returns index, graph of outlinks
tocrawl = [seed]
crawled = []
graph = {} # <url>:[list of pages it links to]
index = {}
while tocrawl:
page = tocrawl.pop()
if page not in crawled:
content = get_page(page)
add_page_to_index(index, page, content)
outlinks = get_all_links(content)
graph[page] = outlinks
union(tocrawl, outlinks)
crawled.append(page)
return index, graph
def ancestors(genealogy, person):
if person in genealogy:
parents = genealogy[person]
result = parents
for parent in parents:
result = result + ancestors(genealogy, parent)
return result
return []
Blaise Pascal Triangle
def make_next_row(row):
result = []
prev = 0
for e in row:
result.append(e + prev)
prev = e
result.append(prev)
return result
def triangle(n):
result = []
current = [1]
for unused in range(0, n):
result.append(current)
current = make_next_row(current)
return result